; ;SV25mon.BIN: file format binary ;Disassembly of section .data: ; ; 2025-03-09 The objdmp disassembler format did not match the as86 assembler format well, ; so it still generates 1084 errors. ; ; 2025-03-10 Changed to use the nasm assembler. ; Fewer errors, and mostly due to es: ; ; 2025-03-16 ndisasm outputs in the right syntax for nasm. ; Reworked, and got a file that compiles, ; but with much code that may be data, ; and links to duff labels. ; ; nasm -f as86 SV25_ndisasm-src2.txt -l SV25_monitor_listing.txt ; ; 2025-03-19 Identififed hex printing routines. ; Code addresses seem to be correct. ; ; NULL equ 0 BELL equ 7 backspace equ 8 TAB equ 9 LF equ 0x0A CR equ 0x0D space equ 0x20 period equ 0x2e colon equ 0x3a apostrophe equ 0x60 backslash equ 0x5C %macro xor_____ax_ax 0 db 0x33,0xc0 ; nasm produces 0x31, c0 %endm %macro xor_____bx_bx 0 db 0x33,0xdb ; nasm produces 0x31,0xdb %endm %macro xor_____cx_cx 0 db 0x33,0xC9 ; nasm produces 0x31 %endm %macro xor_____dx_dx 0 ; nasm produces 0x31 db 0x33,0xD2 %endm %macro mov_____bl_al 0 db 0x8B,0xC3 ; nasm produces 0x88,0xc3 %endm %macro mov_____ax_bx 0 db 0x8b,0xc3 ; nasm produces 0x89,0xd8 %endm %macro mov_____ax_dx 0 db 0x8b,0xc2 ; nasm produces 0x89,0xd0 %endm %macro mov_____bl_cl 0 ; mov bl,cl ; nasm makes 88 cb db 0x8A,0xd9 ; force this %endm %macro mov_____dl_al 0 ; mov dl,al ; nasm makes 88 EB db 0x8A,0xd0 ; force this %endm %macro mov_____bl_ch 0 ; mov bl,ch ; nasm makes 88 c2 db 0x8A,0xdd ; force this %endm %macro mov_____al_ah 0 ; mov al,ah ; nasm makes 88 E0 db 0x8A,0xc4 ; force this %endm %macro mov_____cl_ah 0 ; mov cl,ah ; nasm makes 88 E1 db 0x8A,0xcc ; force this %endm %macro xor_____al_al 0 db 0x32,0xc0 ; db $30,$c0 %endm %macro xor_____ah_ah 0 db 0x32,0xE4 ; db $30,$E4 _018a: %endm %macro xor_____bh_bh 0 db 0x32,0xFF ; db $30,$FF _018a: %endm %macro add_____bx_ax 0 db 0x03,0xD8 %endm io_port_8041 equ 0x8040 io_port_8001 equ 0x8001 io_port_8002 equ 0x8002 RAM_000a equ 0x000a RAM_000c equ 0x000c RAM_000e equ 0x000e RAM_0010 equ 0x0010 RAM_0012 equ 0x0012 RAM_0014 equ 0x0014 RAM_0016 equ 0x0016 RAM_0018 equ 0x0018 RAM_001a equ 0x001a RAM_001c equ 0x001c RAM_001e equ 0x001e RAM_0020 equ 0x0020 RAM_0022 equ 0x0022 RAM_0024 equ 0x0024 RAM_003c equ 0x003c RAM_003e equ 0x003e RAM_0040 equ 0x0040 RAM_0041 equ 0x0041 RAM_0042 equ 0x0042 RAM_006c equ 0x006c RAM_006e equ 0x006e RAM_0080 equ 0x0080 RAM_0082 equ 0x0082 RAM_0084 equ 0x0084 RAM_0086 equ 0x0086 RAM_0088 equ 0x0088 RAM_00d2 equ 0x00d2 RAM_00d4 equ 0x00d4 RAM_00d6 equ 0x00d6 RAM_00d7 equ 0x00d7 RAM_00d8 equ 0x00d8 RAM_00f8 equ 0x00f8 RAM_00f9 equ 0x00f9 RAM_00fa equ 0x00fa RAM_00fb equ 0x00fb RAM_00fc equ 0x00fc RAM_00fe equ 0x00fe RAM_00ff equ 0x00ff RAM_0100 equ 0x0100 RAM_0104 equ 0x0104 RAM_0108 equ 0x0108 RAM_010a equ 0x010a RAM_010c equ 0x010c RAM_010e equ 0x010e RAM_0110 equ 0x0110 RAM_0112 equ 0x0112 RAM_0114 equ 0x0114 RAM_0116 equ 0x0116 RAM_0118 equ 0x0118 RAM_011a equ 0x011a RAM_011b equ 0x011b RAM_011c equ 0x011c RAM_011e equ 0x011e RAM_0120 equ 0x0120 RAM_0122 equ 0x0122 RAM_0124 equ 0x0124 RAM_0125 equ 0x0125 RAM_0127 equ 0x0127 RAM_0128 equ 0x0128 RAM_012a equ 0x012a RAM_012c equ 0x012c RAM_012e equ 0x012e RAM_0130 equ 0x0130 RAM_0132 equ 0x0132 RAM_0134 equ 0x0134 RAM_0136 equ 0x0136 RAM_0137 equ 0x0137 RAM_0138 equ 0x0138 RAM_0139 equ 0x0139 RAM_013a equ 0x013a RAM_013c equ 0x013c RAM_013d equ 0x013d RAM_013e equ 0x013e RAM_013f equ 0x013f RAM_0141 equ 0x0141 RAM_0147 equ 0x0147 RAM_0149 equ 0x0149 RAM_014a equ 0x014a RAM_014c equ 0x014c RAM_014d equ 0x014d RAM_1200 equ 0x1200 RAM_1331 equ 0x1331 RAM_139b equ 0x139b RAM_2000 equ 0x2000 RAM_5bdb equ 0x5bdb RAM_bb53 equ 0xbb53 _0000: mov ax,cs _0002: mov ss,ax _0004: mov sp,0x1f _0007: jmp __02f6 ; _000a: call subroutine_00ee _000d: call subroutine_02cc _0010: call subroutine_2e8a _0013: call subroutine_3510 _0016: mov bx,cstr_sign_on_message _0019: call subroutine_2e42_print_cstr _001c: jmp __35b4 ; cstr_LF: _001f: db LF,NULL cstr_sign_on_message: _0021: db CR,LF ;0021: 0D 0A _0023: db "SV25 Monitor V1.1" _0034: db CR,LF,NULL ; subroutine_0037: _0037: push bx _0038: push es ; __0039: cmp ah,2 _003c: jnz __004c _003e: mov bx,_ff00 _0041: mov es,bx _0043: mov bx,__0f70 _0046: call subroutine_01e4 _0049: jmp __00df ; __004c: cmp ah,5 _004f: jnz __0054 _0051: jmp __00d9 ; __0054: cmp ah,6 _0057: jnz __0064 _0059: cmp dl,0xff _005c: mov ah,7 _005e: jz __0064 _0060: mov ah,2 _0062: jmp short __0039 ; __0064: cmp ah,7 _0067: jnz __0081 _0069: mov bx,_ff00 _006c: mov es,bx _006e: mov bx,__0f70 _0071: mov cx,0xff ; __0074: call subroutine_01b0 _0077: cmp ah,0xff _007a: jnz __00df _007c: jmp short __0074 ; _007e: jmp short __00df ; _0080: nop ; __0081: cmp ah,0xb _0084: jnz __009b _0086: mov bx,_ff00 _0089: mov es,bx _008b: mov bx,__0f70 _008e: mov al,[es:bx+0xd] _0092: and al,0x80 _0094: jz __00df _0096: mov al,0xff _0098: jmp short __00df ; _009a: nop ; __009b: cmp ah,0x25 _009e: jnz __00ba _00a0: xor_____bx_bx _00a2: mov es,bx _00a4: shl al,1 _00a6: shl al,1 _00a8: ; mov bl,al ; okay db 0x8a,0xd8 ; force this _00aa: mov_____ax_dx _00ac: mov [es:bx],ax _00af: add bx,byte +2 _00b2: mov ax,ds _00b4: mov [es:bx],ax _00b7: jmp short __00df _00b9: nop ; __00ba: cmp ah,0x35 _00bd: jnz __00d9 ; _00bf: pop es _00c0: pop bx _00c1: xor_____bx_bx _00c3: mov es,bx _00c5: shl al,1 _00c7: shl al,1 _00c9: ; mov bl,al db 0x8A,0xd8 ; force this _00cb: mov ax,[es:bx] _00ce: push ax _00cf: add bx,byte +2 _00d2: mov ax,[es:bx] _00d5: mov es,ax _00d7: pop bx _00d8: ret ; __00d9: xor_____ax_ax _00db: xor_____cx_cx _00dd: xor_____dx_dx ; __00df: pop es _00e0: pop bx _00e1: ret ; _00e2: push bx _00e3: jmp short __00ec _00e5: nop _00e6: xor_____ax_ax _00e8: xor_____cx_cx _00ea: xor_____dx_dx ; __00ec: pop bx _00ed: ret ; subroutine_00ee: pusha _00ef: push es _00f0: mov ax,_ff00 _00f3: mov es,ax _00f5: mov byte [es:0xfeb],0xc _00fb: mov byte [es:0xf00],0xf _0101: mov byte [es:0xf02],0x80 _0107: mov byte [es:0xf01],0x70 _010d: mov byte [es:0xf0a],0xb8 _0113: mov byte [es:0xf09],1 _0119: mov byte [es:0xf10],0x38 _011f: mov byte [es:0xf12],3 _0125: mov byte [es:0xf11],0x13 _012b: mov byte [es:0xfe1],0 _0131: mov word [es:0xfe8],0xfffd ; _0138: mov bx,__0f70 _013b: and byte [es:bx+0xc],0x7f _0140: and byte [es:bx+0xd],0x7f _0145: or byte [es:bx+0xe],0x80 _014a: mov al,0xd _014c: or al,0xc0 _014e: mov [es:bx+8],al _0152: mov byte [es:bx+9],1 _0157: mov byte [es:bx+0xa],0xd0 _015c: pop es _015d: popa _015e: ret ; _015f: and byte [es:bx+0xc],0x7f _0164: and byte [es:bx+0xd],0x7f _0169: or byte [es:bx+0xe],0x80 _016e: mov al,0xd _0170: or al,0xc0 _0172: mov [es:bx+8],al _0176: mov byte [es:bx+9],1 _017b: mov byte [es:bx+0xa],0xd0 _0180: ret ; _0181: push ds _0182: push bx _0183: mov ax,_ff00 _0186: mov ds,ax _0188: mov_____bl_cl _018a: xor_____bh_bh _018c: shl bl,1 _018e: mov bx,[cs:bx+table_01ac] _0193: and byte [bx+0xc],0x7f _0197: and byte [bx+0xd],0x7f _019b: or byte [bx+0xe],0x80 _019f: mov [bx+8],dh _01a2: mov [bx+9],dl _01a5: mov byte [bx+0xa],0xd0 _01a9: pop bx _01aa: pop ds _01ab: ret ; table_01ac: db $60, $0F db $70, $0F subroutine_01b0: push bx ; 53 _01b1: push cx ; 51 _01b2: mov cx,0xff ; __01b5: mov al,[es:bx+0xd] _01b9: test al,0x80 _01bb: loope __01b5 _01bd: jcxz __01d7 _01bf: and byte [es:bx+0xd],0x7f _01c4: mov al,[es:bx+0xc] _01c8: test al,0x80 _01ca: jz __01dc _01cc: mov al,[es:bx] _01cf: and byte [es:bx+0xc],0x7f _01d4: jmp short __01dc _01d6: nop ; __01d7: mov ah,0xff _01d9: jmp short __01e1 _01db: nop ; __01dc: mov al,[es:bx] _01df: xor_____ah_ah ; __01e1: pop cx _01e2: pop bx _01e3: ret ; subroutine_01e4: push cx _01e5: mov cx,0xff ; __01e8: mov ah,[es:bx+0x000e] _01ec: test ah,0x80 _01ef: loope __01e8 _01f1: jcxz __0201 _01f3: and byte [es:bx+0x000e],0x7f _01f8: mov [es:bx+2],dl _01fc: xor_____ah_ah _01fe: jmp short __0203 _0200: nop ; __0201: mov ah,0xff ; __0203: pop cx _0204: ret ; subroutine_0205: push bx _0206: push dx _0207: push es _0208: mov dx,_ff00 _020b: mov es,dx _020d: shl bx,1 _020f: mov bx,[cs:bx+table_01ac] _0214: mov_____dl_al _0216: call subroutine_01e4 _0219: pop es _021a: pop dx _021b: pop bx _021c: ret ; _021d: push bx _021e: mov bx,0 _0221: call subroutine_0205 _0224: pop bx _0225: ret ; _0226: push bx _0227: mov bx,1 _022a: call subroutine_0205 _022d: pop bx _022e: ret ; subroutine_022f: push bx _0230: push dx _0231: push es _0232: mov dx,_ff00 _0235: mov es,dx _0237: shl bx,1 _0239: mov bx,[cs:bx+table_01ac] _023e: mov al,[es:bx+0xd] _0242: and al,0x80 _0244: jz __024c _0246: call subroutine_01b0 _0249: jmp short __024e _024b: nop ; __024c: xor_____al_al __024e: pop es _024f: pop dx _0250: pop bx _0251: ret ; _0252: push bx _0253: mov bx,0 _0256: call subroutine_022f _0259: pop bx _025a: ret ; _025b: push bx _025c: mov bx,1 _025f: call subroutine_022f _0262: pop bx _0263: ret ; subroutine_0264: push bx _0265: push es _0266: mov bx,_ff00 _0269: mov es,bx _026b: rol al,1 _026d: out dx,al _026e: and [es:0xf10],ah _0273: pop es _0274: pop bx _0275: ret ; _0276: push ax _0277: push dx _0278: mov dx,0x8000 _027b: mov ah,0xdf _027d: call subroutine_0264 _0280: pop dx _0281: pop ax _0282: ret ; _0283: push ax _0284: push dx _0285: mov dx,0x8001 _0288: mov ah,0xef _028a: call subroutine_0264 _028d: pop dx _028e: pop ax _028f: ret ; _0290: push ax _0291: push dx _0292: mov dx,0x8002 _0295: mov ah,0xf7 _0297: call subroutine_0264 _029a: pop dx _029b: pop ax _029c: ret ; _029d: mov dx,0x8040 _02a0: in al,dx _02a1: ret ; _02a2: mov dx,0x8001 _02a5: in al,dx _02a6: ret ; _02a7: mov dx,0x8002 _02aa: in al,dx _02ab: ret ; _02ac: push bx _02ad: push es _02ae: mov bx,_ff00 _02b1: mov es,bx _02b3: ; mov bl,ch db 0x8a,0xdd _02b5: sub bl,2 _02b8: xor_____bh_bh _02ba: mov al,[cs:bx+0x2c9] _02bf: not al ; _02c1: or [es:0xf10],al _02c6: pop es _02c7: pop bx _02c8: ret ; _02c9: db 0xdf, 0xef _02cb: db 0xf7 ; subroutine_02cc: push ax ; $50 _02cd: push si ; $56 push ds _02cf: mov ax,0 _02d2: mov ds,ax ; _02d4: mov si,4 _02d7: mov word [si],table_2f94 _02db: mov [si+2],cs _02de: mov si,0xc _02e1: mov word [si],table_2f94 _02e5: mov [si+2],cs _02e8: mov si,0xc8 _02eb: mov word [si],table_312a _02ef: mov [si+2],cs ; _02f2: pop ds _02f3: pop si _02f4: pop ax _02f5: ret ; __02f6: pop bp _02f7: mov ax,0x40 _02fa: mov ds,ax ; __02fc: mov ax,0x60 _02ff: mov ss,ax _0301: mov sp,0x2a7 _0304: mov ax,cs _0306: mov es,ax _0308: push bp _0309: ret ; subroutine_030a: pusha _030b: hint_nop0 ax _030e: add [si+0x11],dh _0311: mov word [RAM_012e],0x3b4 _0317: mov cx,2 _031a: mov byte [RAM_0137],1 _031f: jmp short __0330 ; _0321: nop _0322: mov word [RAM_012e],0x3b7 _0328: mov cx,1 _032b: mov byte [RAM_0137],2 ; __0330: ; mov bl,al ; db 0x8a,0xd8 ; force this _0332: and bl,0xf0 _0335: cmp bl,0xa0 _0338: jz __035b ; _033a: mov bx,[RAM_013f] ; __033e: mov al,[es:bx+si] _0341: mov [bx+RAM_0141],al _0345: push bx _0346: sub bx,[RAM_013f] _034a: add bx,RAM_0130 _034e: mov [bx],al _0350: pop bx _0351: inc bx _0352: loop __033e _0354: mov [RAM_013f],bx _0358: jmp short __03ad _035a: nop ; __035b: mov word [RAM_0130],0x3ba _0361: mov byte [RAM_0137],0 _0366: mov byte [RAM_0139],1 _036b: push ax _036c: mov bx,[RAM_013f] _0370: mov cx,2 ; __0373: mov al,[es:bx+si] _0376: mov [bx+RAM_0141],al _037a: push bx _037b: sub bx,[RAM_013f] _037f: add bx,0x134 _0383: mov [bx],al _0385: pop bx _0386: inc bx _0387: loop __0373 _0389: mov [RAM_013f],bx _038d: pop ax _038e: hint_nop0 ax _0391: add [si+0x19],si _0394: mov ax,[RAM_012e] _0397: xchg ax,[RAM_0130] _039b: mov [RAM_012e],ax _039e: mov al,[RAM_0136] _03a1: xchg al,[RAM_0137] _03a5: mov [RAM_0136],al _03a8: mov byte [RAM_0139],3 ; __03ad: mov byte [RAM_014c],2 _03b2: popa _03b3: ret ; ; strings ; _03b4: db "AW",0 _03b7: db "AL",0 _03ba: db $00,$00 subroutine_03bc: _03bc: pushaw ; 60 _03bd: mov cx, 1 ; B9 01 00 ; _03c0: mov byte [8],1; C6 06 08 00 01 _03c5: cmp al,0xe2 _03c7: jz __0410 _03c9: cmp al,0xe1 _03cb: jz __0410 _03cd: cmp al,0xe0 _03cf: jz __0410 _03d1: cmp al,0xe3 _03d3: jz __0410 _03d5: cmp al,0xeb _03d7: jz __0410 _03d9: cmp al,0xe9 _03db: jz __0408 _03dd: cmp al,0xe8 _03df: jz __0408 _03e1: cmp al,0x9a _03e3: jz __03fd _03e5: cmp al,0xea _03e7: jz __03fd _03e9: and al,0xf _03eb: cbw _03ec: shl ax,1 _03ee: mov bx,0x473 _03f1: add_____bx_ax _03f3: mov bx,[cs:bx] _03f6: mov [RAM_012c],bx _03fa: jmp short __0410 _03fc: nop ; __03fd: mov cx,4 _0400: mov byte [RAM_013e],1 _0405: jmp short __0410 _0407: nop ; __0408: mov cx,2 _040b: mov byte [8],0 ; __0410: mov bx,[RAM_013f] ; __0414: mov al,[es:bx+si] _0417: mov [bx+RAM_0141],al _041b: push bx _041c: sub bx,[RAM_013f] _0420: add bx,RAM_012e _0424: mov [bx],al _0426: pop bx _0427: inc bx _0428: loop __0414 _042a: mov [RAM_013f],bx _042e: test byte [RAM_013e],1 _0433: jz __0451 _0435: mov ax,[RAM_012e] _0438: xchg ax,[RAM_0130] _043c: mov [RAM_012e],ax _043f: mov byte [RAM_0136],1 _0444: mov byte [RAM_0137],1 _0449: mov byte [RAM_014c],2 _044e: jmp short __0471 _0450: nop ; __0451: mov ax,[RAM_012e] ; _0454: ; add ax,3 db 0x05,0x03,0x00 _0457: test byte [8],1 _045c: jz __0460 _045e: cbw _045f: dec ax ; __0460: add ax,[RAM_012a] _0464: mov [RAM_012e],ax _0467: mov byte [RAM_0136],1 _046c: mov byte [RAM_014c],1 ; __0471: popa _0472: ret ; _0473: DW cstr_0493 DW cstr_0496 DW cstr_049A DW cstr_049D DW cstr_04A1 DW cstr_04A4 DW cstr_04A8 DW cstr_04AC DW cstr_04AF DW cstr_04B2 DW cstr_04B5 DW cstr_04B9 DW cstr_04BD DW cstr_04C1 DW cstr_04C5 DW cstr_04C9 ;0491: C9 04 ; cstrings_branch_mnenonics: ; cstr_0493: db "BV" ,NULL cstr_0496: db "BNV" ,NULL cstr_049A: db "BC" ,NULL cstr_049D: db "BNC" ,NULL cstr_04A1: db "BZ" ,NULL cstr_04A4: db "BNZ" ,NULL cstr_04A8: db "BNH" ,NULL cstr_04AC: db "BH" ,NULL ;04AC cstr_04AF: db "BN" ,NULL ;04AF cstr_04B2: db "BP" ,NULL ;04B2: cstr_04B5: db "BPE" ,NULL ;04B5: cstr_04B9: db "BPO" ,NULL ;04B9: cstr_04BD: db "BLT" ,NULL ;04BD: cstr_04C1: db "BGE" ,NULL ;04C1: cstr_04C5: db "BLE" ,NULL ;04C5: cstr_04C9: db "BGT" ,NULL ;04C9: db NULL ;04CD: 00 ; ; subroutine_04ce: push ax _04cf: push bx _04d0: mov byte [RAM_0136],2 _04d5: mov bx,[RAM_013f] _04d9: mov al,[es:bx+si] _04dc: mov [bx+0x0141],al _04e0: mov [RAM_012e],ax _04e3: inc word [RAM_013f] _04e7: mov byte [RAM_014c],1 _04ec: pop bx _04ed: pop ax _04ee: ret ; db 0 subroutine_04f0: push ax push bx _04f2: shr al,byte 3 _04f5: and al,7 _04f7: cbw _04f8: shl ax,1 _04fa: mov bx,0x524 _04fd: add_____bx_ax _04ff: mov ax,[cs:bx] _0502: mov [RAM_012e],ax _0505: mov bx,[RAM_013f] _0509: mov al,[es:bx+si] _050c: mov [bx+RAM_0141],al _0510: inc word [RAM_013f] _0514: mov [RAM_0130],ax _0517: mov byte [RAM_0137],2 _051c: mov byte [RAM_014c],2 _0521: pop bx _0522: pop ax _0523: ret ; _0524: dw cstr_0534 dw cstr_0536 dw cstr_0538 dw cstr_053a dw cstr_053c dw cstr_053e dw cstr_0540 dw cstr_0542 cstr_0534: db 'B', NULL cstr_0536: db 'C', NULL cstr_0538: db 'D', NULL cstr_053a: db 'E', NULL cstr_053c: db 'H', NULL cstr_053e: db 'L', NULL cstr_0540: db 'M', NULL cstr_0542: db 'A', NULL subroutine_0544: push ax push bx _0546: push cx _0547: mov cx,[RAM_00d8] _054b: jcxz __0580 ; __054d: ; mov bx,cx db 0x8B,0xD9 _054f: dec bx _0550: push bx _0551: add bx,0xee _0555: mov al,[bx] _0557: pop bx _0558: shl bx,1 _055a: add bx,0xda _055e: mov bx,[bx] _0560: push ds _0561: push ax _0562: mov ax,[RAM_0020] _0565: mov ds,ax _0567: pop ax _0568: mov [bx],al _056a: pop ds _056b: loop __054d _056d: dec word [RAM_0024] _0571: mov bx,0x11e _0574: mov ax,[RAM_0024] _0577: mov [bx+2],ax _057a: mov word [RAM_00d8],0 ; __0580: pop cx _0581: pop bx _0582: pop ax _0583: ret ; subroutine_0584_print_segment_colon_word_space: pusha _0585: push es _0586: push cs _0587: pop es _0588: mov ax,[RAM_0128] _058b: call subroutine_2cde_print_hex_word _058e: mov al,colon _0590: call subroutine_2e32_print_character _0593: mov ax,[RAM_012a] _0596: call subroutine_2cde_print_hex_word _0599: mov al,space _059b: call subroutine_2e32_print_character _059e: mov bx,RAM_0141 _05a1: mov cx,[RAM_013f] ; loop_05a5: mov al,[bx] _05a7: call subroutine_2cd2_print_hex_byte _05aa: inc bx _05ab: loop loop_05a5 ; _05ad: mov cx,7 _05b0: sub cx,[RAM_013f] _05b4: shl cx,1 _05b6: mov al,space ; loop_05b8: call subroutine_2e32_print_character _05bb: loop loop_05b8 _05bd: mov bx,[RAM_012c] _05c1: call subroutine_2e42_print_cstr _05c4: cmp byte [RAM_014c],0 _05c9: jnz __05ce _05cb: jmp short __0639 _05cd: nop ; __05ce: mov al,TAB _05d0: call subroutine_2e32_print_character _05d3: mov bx,[RAM_014a] _05d7: call subroutine_2e42_print_cstr _05da: mov ah,[RAM_0139] _05de: sub ah,2 _05e1: cmp byte [RAM_0139],3 _05e6: jnl __05ea _05e8: mov ah,0 ; __05ea: mov bx,[RAM_012e] _05ee: mov al,[RAM_0136] _05f1: call subroutine_077e _05f4: cmp byte [RAM_014c],1 _05f9: jz __0639 _05fb: mov bx,cstr_0641 _05fe: test byte [RAM_013e],1 _0603: jz __0608 _0605: mov bx,cstr_0643 ; __0608: call subroutine_2e42_print_cstr _060b: mov ah,[RAM_0139] _060f: cmp ah,3 _0612: jl __0616 _0614: mov ah,0 ; __0616: mov bx,[RAM_0130] _061a: mov al,[RAM_0137] _061d: call subroutine_077e _0620: cmp byte [RAM_014c],2 _0625: jz __0639 _0627: mov bx,cstr_0641 _062a: call subroutine_2e42_print_cstr _062d: mov bx,[RAM_0132] _0631: mov al,[RAM_0138] _0634: mov ah,0 _0636: call subroutine_077e ; __0639: mov al,CR _063b: call subroutine_2e32_print_character _063e: pop es _063f: popa _0640: ret ; ; cstr_0641: db ",",0 cstr_0643: db ":",0 db NULL ;0645: 00 ; subroutine_0646: push ax push bx _0648: mov bx,cstr_0761 _064b: call subroutine_2e42_print_cstr _064e: mov bx,cstr_077a_digit_0 _0651: hint_nop8 word [RAM_0022] _0656: pcmpeqb mm0,[bp+di] _0659: mov bx,cstr_077c_digit_1 _065c: call subroutine_2e42_print_cstr _065f: mov bx,cstr_077a_digit_0 _0662: hint_nop8 word [RAM_0022] _0667: push cs _0668: jz __066d _066a: mov bx,cstr_077c_digit_1 ; __066d: call subroutine_2e42_print_cstr _0670: mov bx,cstr_077a_digit_0 _0673: hint_nop8 word [RAM_0022] _0678: or ax,0x374 _067b: mov bx,cstr_077c_digit_1 _067e: call subroutine_2e42_print_cstr _0681: mov bx,cstr_077a_digit_0 _0684: hint_nop8 word [RAM_0022] _0689: or al,0x74 _068b: add di,[bp+di+cstr_077c_digit_1] _068f: call subroutine_2e42_print_cstr _0692: mov bx,cstr_077a_digit_0 _0695: hint_nop8 word [RAM_0022] _069a: or si,[si+3] _069d: mov bx,cstr_077c_digit_1 _06a0: call subroutine_2e42_print_cstr _06a3: mov bx,cstr_077a_digit_0 _06a6: hint_nop8 word [RAM_0022] _06ab: or dh,[si+3] _06ae: mov bx,cstr_077c_digit_1 _06b1: call subroutine_2e42_print_cstr _06b4: mov bx,cstr_077a_digit_0 _06b7: hint_nop8 word [RAM_0022] _06bc: or [si+3],si _06bf: mov bx,cstr_077c_digit_1 _06c2: call subroutine_2e42_print_cstr _06c5: mov bx,cstr_077a_digit_0 _06c8: hint_nop8 word [RAM_0022] _06cd: or [si+3],dh _06d0: mov bx,cstr_077c_digit_1 _06d3: call subroutine_2e42_print_cstr _06d6: mov bx,cstr_077a_digit_0 _06d9: hint_nop8 word [RAM_0022] _06de: pop es _06df: jz __06e4 _06e1: mov bx,cstr_077c_digit_1 ; __06e4: call subroutine_2e42_print_cstr _06e7: mov bx,cstr_077a_digit_0 _06ea: hint_nop8 word [RAM_0022] _06ef: push es _06f0: jz __06f5 _06f2: mov bx,cstr_077c_digit_1 ; __06f5: call subroutine_2e42_print_cstr _06f8: mov bx,cstr_077a_digit_0 _06fb: hint_nop8 word [RAM_0022] _0700: add ax,0x374 _0703: mov bx,cstr_077c_digit_1 _0706: call subroutine_2e42_print_cstr _0709: mov bx,cstr_077a_digit_0 _070c: hint_nop8 word [RAM_0022] _0711: add al,0x74 _0713: add di,[bp+di+cstr_077c_digit_1] _0717: call subroutine_2e42_print_cstr _071a: mov bx,cstr_077a_digit_0 _071d: hint_nop8 word [RAM_0022] _0722: add si,[si+3] _0725: mov bx,cstr_077c_digit_1 _0728: call subroutine_2e42_print_cstr _072b: mov bx,cstr_077a_digit_0 _072e: hint_nop8 word [RAM_0022] _0733: add dh,[si+3] _0736: mov bx,cstr_077c_digit_1 _0739: call subroutine_2e42_print_cstr _073c: mov bx,cstr_077a_digit_0 _073f: hint_nop8 word [RAM_0022] _0744: add [si+3],si _0747: mov bx,cstr_077c_digit_1 _074a: call subroutine_2e42_print_cstr _074d: mov bx,cstr_077a_digit_0 _0750: hint_nop8 word [RAM_0022] _0755: add [si+3],dh _0758: mov bx,cstr_077c_digit_1 _075b: call subroutine_2e42_print_cstr _075e: pop bx _075f: pop ax _0760: ret ; cstr_0761: db CR string_0761: db "PSW:",TAB,"MRRRV" subroutine_076c: _076C: db "DIBSZFAFPIC" db CR,TAB,NULL ;0777: 0D 09 00 cstr_077a_digit_0: db '0', NULL cstr_077c_digit_1: db '1', NULL ; 00000761: 0d 50 53 57 3a 09 4d 52 52 52 56 44 49 42 53 ..PSW:.MRRRVDIBS ; 00000770: 5a 46 41 46 50 49 43 0d 09 00 30 00 31 00 60 3c ZFAFPIC...0.1.`< ; subroutine_077e: pusha _077f: cmp al,4 _0781: jnz __0786 _0783: jmp short __07d9 _0785: nop ; __0786: cmp al,2 _0788: jz __07f9 _078a: cmp al,1 _078c: jz __0801 _078e: cmp byte [RAM_014c],1 _0793: jnz __079c _0795: test byte [RAM_013c],1 _079a: jnz __07b1 ; __079c: cmp byte [RAM_014c],2 _07a1: jnz __07bf _07a3: test byte [RAM_013c],1 _07a8: jz __07bf _07aa: test byte [RAM_013d],1 _07af: jz __07bf ; __07b1: mov byte [RAM_013d],0 _07b6: push bx _07b7: mov bx,[RAM_013a] _07bb: call subroutine_2e42_print_cstr _07be: pop bx ; __07bf: mov_____cl_ah _07c1: cmp cl,0 _07c4: jz __07f3 _07c6: mov al,'[' _07c8: call subroutine_2e32_print_character _07cb: mov ax,[RAM_0134] _07ce: cmp cl,1 _07d1: jz __07eb _07d3: call subroutine_2cd2_print_hex_byte _07d6: jmp short __07ee _07d8: nop ; __07d9: mov_____cl_ah _07db: mov al,'[' _07dd: call subroutine_2e32_print_character _07e0: call subroutine_2e42_print_cstr _07e3: mov al,']' _07e5: call subroutine_2e32_print_character _07e8: jmp short __0806 _07ea: nop ; __07eb: call subroutine_2cde_print_hex_word ; __07ee: mov al,']' _07f0: call subroutine_2e32_print_character ; __07f3: call subroutine_2e42_print_cstr _07f6: jmp short __0806 _07f8: nop ; __07f9: ; mov al,bl db 0x8A,0xc3 ; force this _07fb: call subroutine_2cd2_print_hex_byte _07fe: jmp short __0806 _0800: nop ; __0801: mov_____ax_bx _0803: call subroutine_2cde_print_hex_word ; __0806: popa _0807: ret ; subroutine_0808: push ax _0809: push bx _080a: mov bx,cstr_08c6 _080d: call subroutine_2e42_print_cstr _0810: mov ax,[RAM_000a] _0813: call subroutine_2cde_print_hex_word _0816: mov bx,cstr_08cb _0819: call subroutine_2e42_print_cstr _081c: mov ax,[RAM_000c] _081f: call subroutine_2cde_print_hex_word _0822: mov bx,cstr_08d2 _0825: call subroutine_2e42_print_cstr _0828: mov ax,[RAM_000e] _082b: call subroutine_2cde_print_hex_word _082e: mov bx,cstr_08d8 _0831: call subroutine_2e42_print_cstr _0834: mov ax,[RAM_0010] _0837: call subroutine_2cde_print_hex_word _083a: mov bx,cstr_08de _083d: call subroutine_2e42_print_cstr _0840: mov ax,[RAM_0018] _0843: call subroutine_2cde_print_hex_word _0846: mov bx,cstr_08e4 _0849: call subroutine_2e42_print_cstr _084c: mov ax,[RAM_0016] _084f: call subroutine_2cde_print_hex_word _0852: mov bx,cstr_08ea _0855: call subroutine_2e42_print_cstr _0858: mov ax,[RAM_0012] _085b: call subroutine_2cde_print_hex_word _085e: mov bx,cstr_08f0 _0861: call subroutine_2e42_print_cstr _0864: mov ax,[RAM_0014] _0867: call subroutine_2cde_print_hex_word _086a: mov bx,cstr_08f6 _086d: call subroutine_2e42_print_cstr _0870: mov ax,[RAM_001a] _0873: call subroutine_2cde_print_hex_word _0876: mov bx,cstr_08fc _0879: call subroutine_2e42_print_cstr _087c: mov ax,[RAM_001c] _087f: call subroutine_2cde_print_hex_word _0882: mov bx,cstr_0903 _0885: call subroutine_2e42_print_cstr _0888: mov ax,[RAM_001e] _088b: call subroutine_2cde_print_hex_word _088e: mov bx,cstr_0909 _0891: call subroutine_2e42_print_cstr _0894: mov ax,[RAM_0020] _0897: call subroutine_2cde_print_hex_word _089a: mov bx,cstr_090f _089d: call subroutine_2e42_print_cstr _08a0: mov ax,[RAM_0024] _08a3: call subroutine_2cde_print_hex_word _08a6: call subroutine_0646 _08a9: mov bx,cstr_0915 _08ac: call subroutine_2e42_print_cstr _08af: mov ax,[RAM_0020] _08b2: mov [RAM_003c],ax _08b5: mov ax,[RAM_0024] _08b8: mov [RAM_003e],ax _08bb: mov al,0 _08bd: mov bx,0x3c _08c0: call subroutine_378c _08c3: pop bx _08c4: pop ax _08c5: ret ; ; These look a bit misaligned, check them. ; cstr_08c6: db " AW=" ,NULL ;08C6: 20 41 57 3D cstr_08cb: db " BW=" ,NULL ;08CB: 20 20 20 42 57 3D cstr_08d2: db " CW=" ,NULL ;08D2: 20 20 43 57 3D cstr_08d8: db " DW=" ,NULL ;08D8: 20 20 44 57 3D cstr_08de: db " SP=" ,NULL ;08DE: 20 20 53 50 3D cstr_08e4: db " BP=" ,NULL ;08E4: 20 20 42 50 3D cstr_08ea: db " IX=" ,NULL ;08EA: 20 20 49 58 3D cstr_08f0: db " IY=" ,NULL ;08F0: 20 20 49 59 3D cstr_08f6: db CR ;08F6 0D _08f7: db "DS0=" ,NULL ;08F7: 44 53 30 3D cstr_08fc: db " DS1=" ,NULL ;08FC: 20 20 44 53 31 3D cstr_0903: db " SS=" ,NULL ;0903: 20 20 53 53 3D cstr_0909: db " PS=" ,NULL ;0909: 20 20 50 53 3D cstr_090f: db " PC=" ,NULL ;090F: 20 20 50 43 3D cstr_0915: db CR,NULL db NULL ; subroutine_0918: _0918: push ax _0919: push bx _091a: push cx ; __091b: mov ax,[bx] _091d: call subroutine_2cde_print_hex_word _0920: mov al,colon _0922: call subroutine_2e32_print_character _0925: mov ax,[bx+2] _0928: call subroutine_2cde_print_hex_word _092b: mov al,space _092d: call subroutine_2e32_print_character _0930: call subroutine_2e32_print_character _0933: call subroutine_2e32_print_character _0936: push ds _0937: push bx _0938: mov ax,[bx] _093a: mov bx,[bx+2] _093d: mov ds,ax _093f: mov al,[bx] _0941: pop bx _0942: pop ds _0943: call subroutine_2cd2_print_hex_byte _0946: mov al,'-' _0948: call subroutine_2e32_print_character _094b: call subroutine_0f74 _094e: call subroutine_1118 _0951: call subroutine_3376 _0954: cmp al,0x2e _0956: jz __0982 _0958: cmp al,0xd _095a: jz __0978 _095c: cmp al,0x2d _095e: jz __097d _0960: call subroutine_11ec _0963: jc __0986 _0965: push ds _0966: push bx _0967: push ax _0968: mov ax,[bx] _096a: mov bx,[bx+2] _096d: mov ds,ax _096f: pop ax _0970: mov [bx],al _0972: cmp al,[bx] _0974: pop bx _0975: pop ds _0976: jnz __0986 ; __0978: inc word [bx+2] _097b: jmp short __091b ; __097d: dec word [bx+2] _0980: jmp short __091b __0982: clc _0983: jmp short __0987 _0985: nop __0986: stc ;_ ; __0987: pop cx ; __0988: pop bx ; __0989: pop ax _098a: ret ; _098b: db 0 subroutine_098c: push ax call subroutine_10fc _0990: ;; add dl,al db 0x02,0xd0 _0992: jnz __0998 _0994: clc _0995: jmp short __0999 _0997: nop ; __0998: stc __0999: pop ax _099a: ret ; _099b: db $00 ; subroutine_099c: jcxz __09ad ; E3 0F ; __099e: call subroutine_10fc ; E8 5B 07 _09a1: mov dh,6 _09a3: jc __09b8 _09a5: mov [es:bx],al _09a8: ;; add dl,al db 0x02,0xd0 _09aa: inc bx _09ab: loop __099e ; __09ad: call subroutine_098c _09b0: mov dh,0 _09b2: jc __09b8 _09b4: clc _09b5: jmp short __09b9 _09b7: nop ; __09b8: stc ; __09b9: ret ; subroutine_09ba: push ax _09bb: push bx _09bc: push cx ; __09bd: call subroutine_300c _09c0: call subroutine_1118 _09c3: call subroutine_3376 _09c6: cmp al,0xd _09c8: jz __09ec _09ca: cmp al,0x27 _09cc: jz __09e5 ; _09ce: call subroutine_11ec _09d1: jc __09f0 ; _09d3: push ds _09d4: push bx ; _09d5: mov cx,[bx] _09d7: mov bx,[bx+2] _09da: mov ds,cx _09dc: mov [bx],al _09de: pop bx _09df: pop ds _09e0: inc word [bx+2] _09e3: jmp short __09bd ; __09e5: call subroutine_0c3c _09e8: jc __09f0 _09ea: jmp short __09bd ; __09ec: clc _09ed: jmp short __09f1 _09ef: nop ; __09f0: stc ; __09f1: pop cx _09f2: pop bx _09f3: pop ax _09f4: ret ; ; _09f5: db 0 ; subroutine_09f6: ;_09f6: 60 pushaw ;_09f7: C6 06 42 00 00 ;_09f6: 60 pushaw ;_09f7: C6 06 42 00 00 mov byte ptr [0x42], 0 ;_09fc: A2 40 00 mov byte ptr [0x40], al ;_09ff: C6 06 3C 01 01 mov byte ptr [0x13c], 1 mov byte [0x42], 0 _09fc: mov [RAM_0040],al _09ff: mov byte [RAM_013c],1 _0a04: mov_____al_ah _0a06: mov [RAM_0041],al _0a09: shr al,byte 3 _0a0c: and al,7 _0a0e: mov word [RAM_013a],0xb46 _0a14: prefetchnta byte [RAM_0040] _0a19: add [si+0xa],dh _0a1c: hint_nop32 ax _0a1f: ;;; add ax,di db 0x03,0xc7 ; force _0a21: push es _0a22: cmp al,[bx+di] _0a24: push ax _0a25: or bx,[bx+si-0x1f2f] _0a29: mov bx,data_2c06_register_names _0a2c: add_____bx_ax _0a2e: mov ax,[cs:bx] _0a31: mov [RAM_012e],ax _0a34: mov al,[RAM_0041] _0a37: ; mov_____ah_al db 0x8a,0xe0 _0a39: shr ah,byte 6 _0a3c: and ah,3 _0a3f: jz __0a6d _0a41: dec ah _0a43: jz __0aa1 _0a45: dec ah _0a47: jz __0a78 _0a49: and al,7 _0a4b: prefetchnta byte [RAM_0040] _0a50: add [si+4],dh _0a53: hint_nop32 ax _0a56: add bx,[bx+si-0x1f2f] _0a5a: mov bx,data_2c06_register_names _0a5d: add_____bx_ax _0a5f: mov ax,[cs:bx] _0a62: mov [RAM_0130],ax _0a65: mov byte [RAM_013c],0 _0a6a: jmp __0b00 ; __0a6d: and al,7 _0a6f: cmp al,6 _0a71: jnz __0ab9 ; _0a73: mov byte [RAM_0042],1 ; __0a78: mov bx,[RAM_013f] _0a7c: mov al,[es:bx+si] _0a7f: mov [bx+RAM_0141],al _0a83: mov_____dl_al _0a85: inc bx _0a86: mov al,[es:bx+si] _0a89: mov [bx+RAM_0141],al _0a8d: add word [RAM_013f],byte +2 _0a92: ; mov ah,al db 0x8A,0xE0 _0a94: ; mov al,dl db 0x8a,0xc2 _0a96: mov [RAM_0134],ax _0a99: mov byte [RAM_0139],1 _0a9e: jmp short __0ab9 _0aa0: nop ; __0aa1: mov bx,[RAM_013f] _0aa5: mov al,[es:bx+si] _0aa8: mov [bx+RAM_0141],al _0aac: inc word [RAM_013f] _0ab0: cbw _0ab1: mov [RAM_0134],ax _0ab4: mov byte [RAM_0139],2 ; __0ab9: test byte [RAM_0042],1 _0abe: jnz __0ad7 _0ac0: mov al,[RAM_0041] _0ac3: and al,7 _0ac5: cbw _0ac6: shl ax,1 _0ac8: mov bx,0x0b02 _0acb: add_____bx_ax _0acd: mov bx,[cs:bx] _0ad0: mov [RAM_0130],bx _0ad4: jmp short __0ae2 _0ad6: nop ; __0ad7: mov word [RAM_0130],0x0b5a _0add: mov byte [RAM_0139],1 ; __0ae2: prefetchnta byte [RAM_0040] _0ae7: add [di+0x16],si _0aea: mov ax,[RAM_0130] _0aed: xchg ax,[RAM_012e] _0af1: mov [RAM_0130],ax _0af4: cmp byte [RAM_0139],0 _0af9: jz __0b00 _0afb: add byte [RAM_0139],2 ; __0b00: popa _0b01: ret ; ; little-endian jump table on even boundary: ; ; 00000b02: 0b12 0b1a 0b22 0b2a 0b32 0b37 0b3c 0b41 table_0B02: dw __0B12 dw __0B1A dw __0B22 dw __0B2A dw __0B32 dw __0B37 dw __0B3C dw __0B41 ; ; __0B12: db "[BW+IX]" ,NULL ; __0B1A: db "[BW+IY]" ,NULL ; __0B22: db "[BP+IX]" ,NULL ; __0B2A: db "[BP+IY]" ,NULL ; __0B32: db "[IX]" ,NULL ; __0B37: db "[IY]" ,NULL ; __0B3C: db "[BP]" ,NULL ; __0B41: db "[BW]" ,NULL ; __0B46: db "BYTE PTR " ,NULL ; __0B50: db "WORD PTR " ,NULL db NULL,NULL subroutine_0b5c: _0b5c: pusha _0b5d: push ds _0b5e: push es _0b5f: pushf _0b60: mov ax,[bx+4] _0b63: mov dx,[bx+6] _0b66: shr dx,byte 4 _0b69: ;; add ax,dx db 0x03,0xC2 _0b6b: mov es,ax _0b6d: mov di,[bx+6] _0b70: and di,byte +0xf _0b73: mov si,[bx+2] _0b76: and si,byte +0xf _0b79: mov ax,[bx] _0b7b: mov dx,[bx+2] _0b7e: shr dx,byte 4 _0b81: ;; add ax,dx db 0x03,0xC2 _0b83: mov ds,ax _0b85: ;; mov bp,cx db 0x8b,0xe9 _0b87: mov bx,ds _0b89: mov_____ax_bx _0b8b: shr ax,byte 0xc _0b8e: shl bx,byte 4 _0b91: ;; add bx,si db 0x03,0xda _0b93: jnc __0b96 _0b95: inc ax ; __0b96: dec bx _0b97: ;;; add bx,cx db 0x03,0xD9 _0b99: jnc __0b9c _0b9b: inc ax ; __0b9c: mov dx,es _0b9e: ;; mov cx,dx db 0x8B,0xCA _0ba0: shr cx,byte 0xc _0ba3: shl dx,byte 4 _0ba6: add dx,di _0ba8: jnc __0bab _0baa: inc cx ; __0bab: ; cmp ax,cx db 0x3B,0xC1 _0bad: jc __0bc4 _0baf: jnz __0bb5 ; _0bb1: cmp bx,dx _0bb3: jc __0bc4 ; __0bb5: add dx,bp _0bb7: jnc __0bba _0bb9: inc cx ; __0bba: ; cmp ax,cx db 0x3B,0xC1 _0bbc: jc __0bcc _0bbe: ja __0bc4 _0bc0: ;; cmp bx,dx db 0x3B,0xDA _0bc2: jna __0bcc ; __0bc4: mov cx,bp _0bc6: cld _0bc7: rep movsb _0bc9: jmp short __0bd7 _0bcb: nop ; __0bcc: mov cx,bp _0bce: add si,cx _0bd0: add di,cx _0bd2: dec si _0bd3: dec di _0bd4: std _0bd5: rep movsb ; __0bd7: popf _0bd8: pop es _0bd9: pop ds _0bda: popa _0bdb: ret ; subroutine_0bdc: call subroutine_11fc _0bdf: mov dh,5 _0be1: jc __0bf9 ; _0be3: ;; add dl,al db 0x02,0xd0 _0be5: add dl,ah _0be7: push ax _0be8: mov ax,0 _0beb: call subroutine_098c _0bee: pop ax _0bef: mov dh,0 _0bf1: jc __0bf9 ; _0bf3: mov es,ax _0bf5: clc _0bf6: jmp short __0bfa _0bf8: nop ; __0bf9: stc ; __0bfa: ret ; _0bfb: db 0 ;;; add al,ch subroutine_0bfc: call 0x11fc ; E8 FD 05 _0bff: mov dh, 5 ; B6 05 ; _0c01: jc exit_0c39_carry_set_and_return ; _0c03: mov bx,ax _0c05: call subroutine_11fc _0c08: jc exit_0c39_carry_set_and_return ; _0c0a: ;; add dl,al db 0x02,0xd0 _0c0c: add dl,ah _0c0e: add dl,bl _0c10: add dl,bh _0c12: call subroutine_098c _0c15: mov dh,0 _0c17: jc exit_0c39_carry_set_and_return ; _0c19: mov [RAM_0020],bx _0c1d: mov [RAM_0024],ax _0c20: mov [RAM_006c],bx _0c24: mov [RAM_006e],ax _0c27: mov [RAM_0080],bx _0c2b: mov [RAM_0082],ax _0c2e: mov [RAM_011e],bx _0c32: mov [RAM_0120],ax _0c35: clc _0c36: jmp short ret_0c3a ; _0c38: nop ; exit_0c39_carry_set_and_return: stc ; ret_0c3a: ret ; db 0 ; subroutine_0c3c: push ax push bx _0c3e: push cx _0c3f: push si _0c40: push di _0c41: mov di,bx _0c43: call subroutine_300c _0c46: call subroutine_1118 _0c49: call subroutine_3376 _0c4c: cmp al,0x27 _0c4e: jnz __0c98 ; _0c50: call subroutine_1118 _0c53: mov bx,0x0044 _0c56: mov cx,0 ; __0c59: call subroutine_1118 _0c5c: cmp al,CR _0c5e: jz __0c98 ; _0c60: cmp al,0x27 _0c62: jnz __0c71 ; _0c64: call subroutine_1118 _0c67: cmp al,0x27 _0c69: jz __0c71 _0c6b: call subroutine_3376 _0c6e: jmp short __0c7f _0c70: nop ; __0c71: push bx _0c72: add bx,cx _0c74: mov [bx],al _0c76: pop bx _0c77: inc cx _0c78: cmp cx,byte +0x28 _0c7b: jg __0c98 _0c7d: jmp short __0c59 ; __0c7f: jcxz __0c94 _0c81: push es _0c82: push di _0c83: mov si,0x44 _0c86: mov ax,[di] _0c88: mov di,[di+2] _0c8b: mov es,ax _0c8d: rep movsb _0c8f: pop si _0c90: pop es _0c91: mov [si+2],di ; __0c94: clc _0c95: jmp short __0c99 _0c97: nop ; __0c98: stc ; __0c99: pop di _0c9a: pop si _0c9b: pop cx _0c9c: pop bx _0c9d: pop ax _0c9e: ret ; db 0 subroutine_0ca0: push ax ; $50 push bx ; $53 _0ca2: mov bx,0xcb9 _0ca5: mov [RAM_012c],bx _0ca9: mov [RAM_012e],ax _0cac: mov byte [RAM_0136],2 _0cb1: mov byte [RAM_014c],1 _0cb6: pop bx _0cb7: pop ax _0cb8: ret ; _0cb9: inc sp _0cba: inc dx _0cbb: add [bx+si+0x53],dl _0cbe: push cx _0cbf: mov bx,0x6c _0cc2: call subroutine_2cea _0cc5: jc __0cf7 ; _0cc7: cmp al,0 _0cc9: jz __0cd6 ; _0ccb: cmp al,1 _0ccd: jz __0cdc ; _0ccf: cmp al,2 _0cd1: jz __0ce8 ; _0cd3: jmp short __0cf7 _0cd5: nop ; __0cd6: mov bx,0x6c _0cd9: jmp short __0cee _0cdb: nop ; __0cdc: mov ax,[RAM_001a] _0cdf: mov [RAM_006c],ax _0ce2: mov bx,0x6c _0ce5: jmp short __0cee _0ce7: nop ; __0ce8: mov bx,0x6c _0ceb: jmp short __0cee _0ced: nop ; __0cee: mov ax,8 _0cf1: call subroutine_0d9e _0cf4: jmp short __0cfa _0cf6: nop ; __0cf7: call subroutine_0e1e ; __0cfa: pop cx _0cfb: pop bx _0cfc: pop ax _0cfd: ret ; subroutine_0cfe: push ax _0cff: push bx _0d00: push cx _0d01: push dx _0d02: push si _0d03: ;; mov dx,ax ; db 0x8b,0xd0 _0d05: mov ax,[bx] _0d07: call subroutine_2cde_print_hex_word _0d0a: mov al,colon _0d0c: call subroutine_2e32_print_character _0d0f: mov ax,[bx+2] _0d12: call subroutine_2cde_print_hex_word _0d15: push bx _0d16: mov bx,cstr_0d97 _0d19: call subroutine_2e42_print_cstr _0d1c: pop bx _0d1d: mov si,0 _0d20: mov cx,0x10 ; __0d23: cmp cx,byte +8 _0d26: jnz __0d2d _0d28: mov al,'-' _0d2a: call subroutine_2e32_print_character ; __0d2d: cmp dx,cx _0d2f: jnl __0d3c ; _0d31: mov al,space _0d33: call subroutine_2e32_print_character _0d36: call subroutine_2e32_print_character _0d39: jmp short __0d51 _0d3b: nop ; __0d3c: push ds _0d3d: push bx _0d3e: mov ax,[bx] _0d40: mov bx,[bx+2] _0d43: mov ds,ax _0d45: mov al,[bx+si] _0d47: pop bx _0d48: pop ds _0d49: ; mov [si+0x70],al ; assembler shortens this to ; 00000D49 884470 mov [si+0x70],al ; When it needs to be this: ; 00000D49 88847000 mov [si+0x70],al ; db $88,$44 ; force opcode dw $0070 ; force 16-bit word _0d4d: call subroutine_2cd2_print_hex_byte _0d50: inc si ; __0d51: cmp cx,byte +9 _0d54: jz __0d5b _0d56: mov al,space _0d58: call subroutine_2e32_print_character ; __0d5b: loop __0d23 _0d5d: mov bx,cstr_0d9a _0d60: call subroutine_2e42_print_cstr _0d63: mov cx,0x10 _0d66: sub cx,dx _0d68: jcxz __0d71 ; __0d6a: mov al,space _0d6c: call subroutine_2e32_print_character _0d6f: loop __0d6a ; __0d71: mov si,0 _0d74: ;; mov cx,dx db 0x8B,0xCA ; __0d76: ; ; mov al,[si+0x70] db $8A,$84 ; force opcode dw $0070 ; force 16-bit word ; _0d7a: and al,0x7f _0d7c: cmp al,0x7f _0d7e: jz __0d84 ; _0d80: cmp al,0x20 _0d82: jnl __0d86 ; __0d84: mov al,'-' ; __0d86: call subroutine_2e32_print_character _0d89: inc si _0d8a: loop __0d76 _0d8c: mov al,CR _0d8e: call subroutine_2e32_print_character _0d91: pop si _0d92: pop dx _0d93: pop cx _0d94: pop bx _0d95: pop ax _0d96: ret ; cstr_0d97: db " ", 0 ; cstr_0d9a: db " ", 0 ; db 0 subroutine_0d9e: push ax push bx _0da0: push cx _0da1: mov cx,ax _0da3: jcxz __0dc8 ; _0da5: mov ax,[bx+2] _0da8: and ax,0xf _0dab: jz __0dba ; _0dad: inc cx _0dae: push bx _0daf: mov bx,ax _0db1: mov ax,0x10 _0db4: sub ax,bx _0db6: pop bx _0db7: jmp short __0dbd _0db9: nop ; __0dba: mov ax,0x10 ; __0dbd: call subroutine_0cfe _0dc0: add [bx+2],ax _0dc3: mov ax,0x10 _0dc6: loop __0dbd ; __0dc8: pop cx _0dc9: pop bx _0dca: pop ax _0dcb: ret ; _0dcc: push ax _0dcd: push bx _0dce: push cx _0dcf: mov bx,0x80 _0dd2: call subroutine_2cea _0dd5: jc __0e16 ; _0dd7: cmp al,0 _0dd9: jz __0de6 ; _0ddb: cmp al,1 _0ddd: jz __0de9 ; _0ddf: cmp al,2 _0de1: jz __0df2 ; _0de3: jmp short __0e16 _0de5: nop ; __0de6: jmp short __0df5 _0de8: nop ; __0de9: mov ax,[RAM_001a] _0dec: mov [RAM_0080],ax _0def: jmp short __0df5 _0df1: nop ; __0df2: jmp short __0df5 _0df4: nop ; __0df5: call subroutine_300c _0df8: call subroutine_1118 _0dfb: call subroutine_3376 _0dfe: cmp al,0xd _0e00: jz __0e0d _0e02: mov bx,0x80 _0e05: call subroutine_09ba _0e08: jc __0e16 _0e0a: jmp short __0e19 _0e0c: nop ; __0e0d: mov bx,0x80 _0e10: call subroutine_0918 _0e13: jmp short __0e19 _0e15: nop ; __0e16: call subroutine_0e1e ; __0e19: pop cx _0e1a: pop bx _0e1b: pop ax _0e1c: ret ; _0e1d: db 0 subroutine_0e1e: push bx ; db 0xbb _0e20: daa _0e21: push cs _0e22: call subroutine_2e42_print_cstr _0e25: pop bx _0e26: ret ; ; ; _0e27: db CR db "ERROR" ;0E27: 0D 45 52 52 4F 52 'ERROR' db CR,NULL,NULL ;0E2D: 0D 00 00 ; subroutine_0e30: _0e30: pushf _0e31: push cx _0e32: push dx _0e33: mov ah,7 _0e35: call subroutine_0037 _0e38: pop dx _0e39: pop cx _0e3a: popf _0e3b: ret ; subroutine_0e3c: push ax _0e3d: push bx _0e3e: push cx ; __0e3f: call subroutine_0f74 ; __0e42: call subroutine_0e30 _0e45: cmp al,0xd _0e47: jz __0eab _0e49: cmp al,8 _0e4b: jz __0e6d _0e4d: cmp al,0x7f _0e4f: jz __0e6d _0e51: cmp al,0x18 _0e53: jz __0e8d _0e55: cmp word [RAM_0086],byte +0x48 _0e5a: jnl __0ea4 _0e5c: mov bx,[RAM_0086] _0e60: mov [bx+0x88],al _0e64: inc word [RAM_0086] _0e68: call subroutine_2e32_print_character _0e6b: jmp short __0e42 ; __0e6d: cmp word [RAM_0086],byte +0 _0e72: jng __0e42 _0e74: dec word [RAM_0084] _0e78: dec word [RAM_0086] _0e7c: mov al,backspace _0e7e: call subroutine_2e32_print_character _0e81: mov al,space _0e83: call subroutine_2e32_print_character _0e86: mov al,backspace _0e88: call subroutine_2e32_print_character _0e8b: jmp short __0e42 ; __0e8d: mov cx,[RAM_0086] ; __0e91: mov al,backspace _0e93: call subroutine_2e32_print_character _0e96: mov al,space _0e98: call subroutine_2e32_print_character _0e9b: mov al,backspace _0e9d: call subroutine_2e32_print_character _0ea0: loop __0e91 _0ea2: jmp short __0e3f ; __0ea4: mov al,BELL _0ea6: call subroutine_2e32_print_character _0ea9: jmp short __0e42 ; __0eab: call subroutine_2e32_print_character _0eae: mov bx,[RAM_0086] _0eb2: mov byte [bx+RAM_0088],0xd _0eb7: inc word [RAM_0086] _0ebb: mov word [RAM_0084],0 _0ec1: pop cx _0ec2: pop bx _0ec3: pop ax _0ec4: ret ; __0ec5: db 0 subroutine_0ec6: push ax push bx ; _0ec8: mov bx,[RAM_013f] _0ecc: mov al,[es:bx+si] _0ecf: mov [bx+RAM_0141],al _0ed3: inc word [RAM_013f] _0ed7: mov word [RAM_012c],0xf22 _0edd: cmp al,0xed _0edf: jz __0ef1 _0ee1: cmp al,0xfd _0ee3: jz __0ee8 _0ee5: jmp short __0f13 _0ee7: nop ; __0ee8: mov word [RAM_012c],0xf1c _0eee: jmp short __0f13 _0ef0: nop ; __0ef1: mov word [RAM_012c],0xf16 _0ef7: mov bx,[RAM_013f] _0efb: mov al,[es:bx+si] _0efe: mov [bx+RAM_0141],al _0f02: inc word [RAM_013f] _0f06: mov [RAM_012e],ax _0f09: mov byte [RAM_0136],2 _0f0e: mov byte [RAM_014c],1 ; __0f13: pop bx _0f14: pop ax _0f15: ret ; cstrings_CALLN_RETEM_etc: _0f16: db "CALLN" ,NULL ;0F16: 43 41 4C 4C 4E 'CALLN' _0f1c: db "RETEM" ,NULL ;0F1C: 52 45 54 45 4D 'RETEM' _0f21: db "???" ,NULL ;0F22: 3F 3F 3F '???' ; ; db "PSQ" ;0F26: 50 53 51 'PSQ' ; NB: no null terminator! ; it is code! push ax push bx push cx ; _0f29: mov bx,0xd2 _0f2c: call subroutine_2cea _0f2f: jc __0f6d _0f31: cmp al,0 _0f33: jz __0f40 _0f35: cmp al,1 _0f37: jz __0f43 _0f39: cmp al,2 _0f3b: jz __0f4b _0f3d: jmp short __0f6d _0f3f: nop ; __0f40: jmp short __0f4e _0f42: nop ; __0f43: mov ax,[RAM_001a] _0f46: mov [bx],ax _0f48: jmp short __0f4e _0f4a: nop ; __0f4b: jmp short __0f4e _0f4d: nop ; __0f4e: call subroutine_1196 _0f51: jc __0f6d _0f53: ;; mov cx,ax db 0xbc,0x8b _0f55: call subroutine_11ec _0f58: jc __0f6d _0f5a: jcxz __0f6a _0f5c: push es _0f5d: push di _0f5e: mov es,[RAM_00d2] _0f62: mov di,[RAM_00d4] _0f66: rep stosb _0f68: pop di _0f69: pop es ; __0f6a: jmp short __0f70 _0f6c: nop ; __0f6d: call subroutine_0e1e ; __0f70: pop cx _0f71: pop bx _0f72: pop ax _0f73: ret ; subroutine_0f74: mov word [RAM_0086],0 _0f7a: mov word [RAM_0084],0 _0f80: ret db 0 ; _0f82: pusha ;_0f83: 50 push ax _0f84: db 0x88,0xE0 ; mov al,ah _0f86: and al,0xc0 _0f88: cmp al,0xc0 _0f8a: jnz __0fad _0f8c: mov_____al_ah _0f8e: and ax,7 _0f91: shl ax,1 _0f93: mov bx,0x10cb _0f96: add_____bx_ax _0f98: mov bx,[cs:bx] _0f9b: mov [RAM_0130],bx _0f9f: mov word [RAM_012e],0x10db _0fa5: mov byte [RAM_014c],2 _0faa: jmp __104c ; __0fad: mov byte [RAM_00d6],0 _0fb2: mov byte [RAM_013c],1 _0fb7: mov [RAM_00d7],ah _0fbb: mov word [RAM_012e],0x10db _0fc1: mov_____al_ah _0fc3: shr ah,byte 6 _0fc6: and ah,3 _0fc9: jz __0fd2 _0fcb: dec ah _0fcd: jz __1006 _0fcf: jmp short __0fdd _0fd1: nop ; __0fd2: and al,7 _0fd4: cmp al,6 _0fd6: jnz __101e _0fd8: mov byte [RAM_00d6],1 ; __0fdd: mov bx,[RAM_013f] _0fe1: mov al,[es:bx+si] _0fe4: mov [bx+RAM_0141],al _0fe8: mov_____dl_al _0fea: inc bx _0feb: mov al,[es:bx+si] _0fee: mov [bx+RAM_0141],al _0ff2: add word [RAM_013f],byte +2 _0ff7: ; mov ah,al db 0x8a,0xe0 _0ff9: mov al,dl _0ffb: mov [RAM_0134],ax _0ffe: mov byte [RAM_0139],1 _1003: jmp short __101e _1005: nop ; __1006: mov bx,[RAM_013f] _100a: mov al,[es:bx+si] _100d: mov [bx+RAM_0141],al _1011: inc word [RAM_013f] _1015: cbw _1016: mov [RAM_0134],ax _1019: mov byte [RAM_0139],2 ; __101e: test byte [RAM_00d6],1 _1023: jnz __103c _1025: mov al,[RAM_00d7] _1028: and al,7 _102a: cbw _102b: shl ax,1 _102d: mov bx,0x1073 _1030: add_____bx_ax _1032: mov bx,[cs:bx] _1035: mov [RAM_0130],bx _1039: jmp short __1047 _103b: nop ; __103c: mov word [RAM_0130],0x10fb _1042: mov byte [RAM_0139],1 ; __1047: mov byte [RAM_014c],2 ; __104c: pop ax _104d: cmp al,0 _104f: jz __1071 _1051: mov ax,[RAM_0130] _1054: xchg ax,[RAM_012e] _1058: mov [RAM_0130],ax _105b: mov al,[RAM_0137] _105e: xchg al,[RAM_0136] _1062: mov [RAM_0137],al _1065: cmp byte [RAM_0139],0 _106a: jz __1071 _106c: add byte [RAM_0139],2 ; __1071: popa _1072: ret ; ; ; jump table on odd boundary: ; DW cstr_1083 DW cstr_108B DW cstr_1093 DW cstr_109B DW cstr_10A3 DW cstr_10A8 DW cstr_10AD DW cstr_10B2 ;107E: 10 AD 10 B2 10 ; cstrings_various: ; cstr_1083: db "[BW+IX]" ,NULL ;1083: 5B 42 57 2B 49 58 5D '[BW+IX]' cstr_108B: db "[BW+IY]" ,NULL ;108B: 5B 42 57 2B 49 59 5D '[BW+IY]' cstr_1093: db "[BP+IX]" ,NULL ;1093: 5B 42 50 2B 49 58 5D '[BP+IX]' cstr_109B: db "[BP+IY]" ,NULL ;109B: 5B 42 50 2B 49 59 5D '[BP+IY]' cstr_10A3: db "[IX]" ,NULL ;10A3: 5B 49 58 5D '[IX]' cstr_10A8: db "[IY]" ,NULL ;10A8: 5B 49 59 5D '[IY]' cstr_10AD: db "[BP]" ,NULL ;10AD: 5B 42 50 5D '[BP]' cstr_10B2: db "[BW]" ,NULL ;10B2: 5B 42 57 5D '[BW]' cstr_10B7: db "BYTE PTR " ,NULL ;10B7: 42 59 54 45 20 50 54 52 20 'BYTE PTR ' cstr_10C1: db "WORD PTR " ,NULL ;10C1: 57 4F 52 44 20 50 54 52 20 'WORD PTR ' ; ; ; DW cstr_10DB DW cstr_10DF DW cstr_10E3 DW cstr_10E7 DW cstr_10EB DW cstr_10EF DW cstr_10F3 DW cstr_10F7 ; ; ; cstr_10DB: db "FR0" ,NULL cstr_10DF: db "FR1" ,NULL cstr_10E3: db "FR2" ,NULL cstr_10E7: db "FR3" ,NULL cstr_10EB: db "FR4" ,NULL cstr_10EF: db "FR5" ,NULL cstr_10F3: db "FR6" ,NULL cstr_10F7: db "FR7" ,NULL _10fb: db NULL ;10FB: 00 subroutine_10fc: push bx _10fd: call subroutine_0e30 _1100: call subroutine_318c _1103: jc __1115 _1105: shl ax,byte 4 _1108: mov bl,al ; stet _110a: call subroutine_0e30 _110d: call subroutine_318c _1110: jc __1115 _1112: add al,bl _1114: clc ; __1115: pop bx _1116: ret ; _1117: db 0 subroutine_1118: push bx ;1118: 53 _1119: mov bx,[RAM_0086] ;1119: 8B 1E 86 00 ;_111a: push ds ;_111b: xchg al,[bx+si] _111d: cmp bx,[RAM_0084] _1121: jnz __1126 _1123: call subroutine_0e3c ; __1126: mov bx,[RAM_0084] _112a: mov al,[bx+RAM_0088] _112e: inc word [RAM_0084] _1132: pop bx _1133: ret ; subroutine_1134: call subroutine_300c _1137: call subroutine_1118 _113a: call subroutine_31a4 _113d: cmp al,0xd _113f: jz __114e _1141: cmp al,0x41 _1143: jl __1153 _1145: cmp al,0x5a _1147: jg __1153 _1149: mov ah,0 _114b: jmp short __1155 _114d: nop ; __114e: mov ah,1 subroutine_1150: _1150: jmp short __1155 _1152: nop ; __1153: mov ah,2 ; __1155: ret ; subroutine_1156: push bx _1157: push cx _1158: push dx _1159: call subroutine_300c _115c: mov cx,0xa _115f: mov ax,0 _1162: push ax ; __1163: call subroutine_1118 _1166: cmp al,0x20 _1168: jz __118c _116a: cmp al,9 _116c: jz __118c _116e: cmp al,0xd _1170: jz __118c _1172: call subroutine_1530_set_carry_if_greater_than_9 _1175: jnc __1188 _1177: sub al,0x30 _1179: mov ah,0 _117b: mov bx,ax _117d: pop ax _117e: mul cx _1180: jo __1187 _1182: add ax,bx _1184: push ax _1185: jmp short __1163 ; __1187: push ax ; __1188: stc _1189: jmp short __1190 _118b: nop ; __118c: call subroutine_3376 _118f: clc ; __1190: pop ax _1191: pop dx _1192: pop cx _1193: pop bx _1194: ret ; db 0 subroutine_1196: push ax push bx _1198: push dx _1199: call subroutine_300c _119c: mov ax,0 _119f: push ax ; __11a0: call subroutine_1118 _11a3: cmp al,0x3a _11a5: jz __11e3 _11a7: cmp al,0x20 _11a9: jz __11e3 _11ab: cmp al,9 _11ad: jz __11e3 _11af: cmp al,0xd _11b1: jz __11e3 _11b3: call subroutine_31a4 _11b6: call subroutine_1514_set_carry_if_hex _11b9: jnc __11df _11bb: call subroutine_1530_set_carry_if_greater_than_9 _11be: jc __11c2 _11c0: sub al,7 ; __11c2: sub al,0x30 _11c4: mov ah,0 _11c6: mov bx,ax _11c8: pop ax _11c9: shl ax,1 _11cb: jc __11de _11cd: shl ax,1 _11cf: jc __11de _11d1: shl ax,1 _11d3: jc __11de _11d5: shl ax,1 _11d7: jc __11de _11d9: add ax,bx _11db: push ax _11dc: jmp short __11a0 ; __11de: push ax ; __11df: stc _11e0: jmp short __11e7 _11e2: nop ; __11e3: call subroutine_3376 _11e6: clc ; __11e7: pop ax _11e8: pop dx _11e9: pop cx _11ea: pop bx _11eb: ret ; subroutine_11ec: call subroutine_1196 _11ef: jc __11fa _11f1: cmp ax,0xff _11f4: jg __11fa _11f6: clc _11f7: jmp short __11fb _11f9: nop ; __11fa: stc ; __11fb: ret ; subroutine_11fc: push bx _11fd: call subroutine_10fc _1200: jc __120b _1202: mov bh,al _1204: call subroutine_10fc _1207: jc __120b _1209: mov ah,bh ; __120b: pop bx _120c: ret db 0 ; _120e: db 0x50, 0x53 _1210: push cx _1211: call subroutine_1118 _1214: call subroutine_3376 _1217: cmp al,0x3d _1219: jnz __1226 _121b: call subroutine_1118 _121e: call subroutine_1196 _1221: jc __126a _1223: mov [RAM_0024],ax ; __1226: mov word [RAM_00d8],0 ; __122c: call subroutine_300c _122f: call subroutine_1118 _1232: call subroutine_3376 _1235: cmp al,0xd _1237: jz __1257 _1239: call subroutine_1196 _123c: jc __126a _123e: mov bx,[RAM_00d8] _1242: shl bx,1 _1244: add bx,0xda _1248: mov [bx],ax _124a: inc word [RAM_00d8] _124e: cmp word [RAM_00d8],byte +0xa _1253: jg __126a _1255: jmp short __122c ; __1257: call subroutine_3022 _125a: call subroutine_2f30 _125d: pushf _125e: call subroutine_0544 _1261: popf _1262: jnc exit_126d _1264: call subroutine_0808 _1267: jmp short exit_126d _1269: nop ; __126a: call subroutine_0e1e ; exit_126d: pop cx _126e: pop bx _126f: pop ax _1270: ret ; _L1271: db 0, 0xf subroutine_1272: pusha _1274: sbb al,al _1276: add [di+0xd],dh _1279: mov cx,1 _127c: mov dl,2 _127e: mov byte [RAM_00f9],2 _1283: jmp short __1290 _1285: nop _1286: mov cx,2 _1289: mov dl,3 _128b: mov byte [RAM_00f9],1 ; __1290: mov bx,[RAM_013f] _1294: mov al,[es:bx+si] _1297: mov [bx+RAM_0141],al _129b: inc word [RAM_013f] _129f: mov dh,al _12a1: shr al,byte 3 _12a4: and al,7 _12a6: mov [RAM_00f8],al _12a9: cbw _12aa: shl ax,1 _12ac: mov bx,0x1311 _12af: add_____bx_ax _12b1: mov bx,[cs:bx] _12b4: mov [RAM_012c],bx _12b8: mov_____ax_dx _12ba: call subroutine_09f6 _12bd: mov ax,[RAM_0130] _12c0: mov [RAM_012e],ax _12c3: mov al,[RAM_0137] _12c6: mov [RAM_0136],al _12c9: cmp byte [RAM_0139],0 _12ce: jz __12d5 _12d0: add byte [RAM_0139],2 ; __12d5: mov byte [RAM_014c],1 _12da: cmp byte [RAM_00f8],0 _12df: jnz __130f _12e1: mov bx,[RAM_013f] ; __12e5: mov al,[es:bx+si] _12e8: mov [bx+RAM_0141],al _12ec: push bx _12ed: sub bx,[RAM_013f] _12f1: add bx,RAM_0130 _12f5: mov [bx],al _12f7: pop bx _12f8: inc bx _12f9: loop __12e5 _12fb: mov [RAM_013f],bx _12ff: mov al,[RAM_00f9] _1302: mov [RAM_0137],al _1305: mov byte [RAM_013d],1 _130a: mov byte [RAM_014c],2 ; __130f: popa _1310: ret ; ; ; DW cstr_1321 DW cstr_1326 DW cstr_132A DW cstr_132E DW cstr_1332 DW cstr_1337 DW cstr_133B DW cstr_1340 ; cstrings_TEST_NOT_NEG_etc: ; cstr_1321: db "TEST" ,NULL ;1321: 54 45 53 54 'TEST' cstr_1326: db "???" ,NULL ;1326: 3F 3F 3F '???' cstr_132A: db "NOT" ,NULL ;132A: 4E 4F 54 'NOT' cstr_132E: db "NEG" ,NULL ;132E: 4E 45 47 'NEG' cstr_1332: db "MULU" ,NULL ;1332: 4D 55 4C 55 'MULU' cstr_1337: db "MUL" ,NULL ;1337: 4D 55 4C 'MUL' cstr_133B: db "DIVU" ,NULL ;133B: 44 49 56 55 'DIVU' cstr_1340: db "DIV" ,NULL ;1340: 44 49 56 'DIV' ; L1343: ;;; add ah,0xf,[bx+si] db 0 subroutine_1344: pusha _1346: sbb al,al _1348: add [di+5],dh _134b: mov dl,2 _134d: jmp short __1352 _134f: nop _1350: mov dl,3 __1352: mov bx,[RAM_013f] _1356: mov al,[es:bx+si] _1359: mov [bx+RAM_0141],al _135d: inc word [RAM_013f] _1361: mov dh,al _1363: shr al,byte 3 _1366: and al,7 _1368: cbw _1369: shl ax,1 _136b: mov bx,RAM_139b _136e: add_____bx_ax _1370: mov bx,[cs:bx] _1373: mov [RAM_012c],bx _1377: mov_____ax_dx _1379: call subroutine_09f6 _137c: mov ax,[RAM_0130] _137f: mov [RAM_012e],ax _1382: mov al,[RAM_0137] _1385: mov [RAM_0136],al _1388: cmp byte [RAM_0139],0 _138d: jz __1394 _138f: add byte [RAM_0139],2 ; __1394: mov byte [RAM_014c],1 _1399: popa _139a: ret ; ; ; DW cstr_13ab DW cstr_13af DW cstr_13b3 DW cstr_13b3 DW cstr_13b8 DW cstr_13b8 ; twice! DW cstr_13bb DW cstr_13c0 ; cstrings_INC_DEC_CALL_BR_PUSH_etc: cstr_13ab: db "INC" ,NULL ;13AB: 49 4E 43 'INC' cstr_13af: db "DEC" ,NULL ;13AF: 44 45 43 'DEC' cstr_13b3: db "CALL" ,NULL ;13B3: 43 41 4C 4C 'CALL' cstr_13b8: db "BR" ,NULL ;13B8: 42 52 'BR' cstr_13bb: db "PUSH" ,NULL ;13BB: 50 55 53 48 'PUSH' cstr_13c0: db "???" ,NULL ;13C0: 3F 3F 3F '???' ;;; __13c3: db 0 subroutine_13c4: _13c4: pusha _13c5: mov byte [RAM_00fa],0 _13ca: mov byte [RAM_00fc],1 _13cf: mov ah,al _13d1: cmp al,0xc6 _13d3: jz __1404 _13d5: cmp al,0xc7 _13d7: jz __1411 _13d9: mov byte [RAM_00fc],0 _13de: mov ah,2 _13e0: cmp al,0x80 _13e2: jz __1404 _13e4: mov ah,3 _13e6: cmp al,0x81 _13e8: jz __1411 _13ea: mov ah,2 _13ec: cmp al,0x82 _13ee: jz __1404 _13f0: mov ah,2 _13f2: mov cx,1 _13f5: mov dl,ah _13f7: mov byte [RAM_00fa],1 _13fc: mov byte [RAM_00fb],1 _1401: jmp short __141b _1403: nop ; __1404: mov cx,1 _1407: mov dl,ah _1409: mov byte [RAM_00fb],2 _140e: jmp short __141b _1410: nop ; __1411: mov cx,2 _1414: mov dl,ah _1416: mov byte [RAM_00fb],1 ; __141b: mov bx,[RAM_013f] _141f: mov al,[es:bx+si] _1422: mov [bx+RAM_0141],al _1426: inc word [RAM_013f] _142a: mov dh,al _142c: test byte [RAM_00fc],1 _1431: jnz __1447 _1433: shr al,byte 3 _1436: and al,7 _1438: cbw _1439: shl ax,1 _143b: mov bx,0x14a2 _143e: add_____bx_ax _1440: mov bx,[cs:bx] _1443: mov [RAM_012c],bx ; __1447: mov_____ax_dx _1449: call subroutine_09f6 _144c: mov ax,[RAM_0130] _144f: mov [RAM_012e],ax _1452: mov al,[RAM_0137] _1455: mov [RAM_0136],al _1458: cmp byte [RAM_0139],0 _145d: jz __1464 _145f: add byte [RAM_0139],2 ; __1464: mov bx,[RAM_013f] ; __1468: mov al,[es:bx+si] _146b: mov [bx+RAM_0141],al _146f: push bx _1470: sub bx,[RAM_013f] _1474: add bx,RAM_0130 _1478: mov [bx],al _147a: pop bx _147b: inc bx _147c: loop __1468 _147e: mov [RAM_013f],bx _1482: test byte [RAM_00fa],1 _1487: jz __1490 _1489: mov ax,[RAM_0130] _148c: cbw _148d: mov [RAM_0130],ax ; __1490: mov al,[RAM_00fb] _1493: mov [RAM_0137],al _1496: mov byte [RAM_013d],1 _149b: mov byte [RAM_014c],2 _14a0: popa _14a1: ret ; _14a2: mov dl,0x14 _14a4: mov dh,0x14 _14a6: mov cx,0xbd14 _14a9: adc al,0xc1 _14ab: adc al,0xc5 _14ad: adc al,0xc9 _14af: adc al,0xcd _14b1: adc al,0x41 _14b3: inc sp _14b4: inc sp _14b5: add [bx+0x52],cl _14b8: add [bx+di+0x44],al _14bb: inc bx _14bc: add [bp+di+0x42],dl _14bf: inc dx _14c0: add [bx+di+0x4e],al _14c3: inc sp _14c4: add [bp+di+0x55],dl _14c7: inc dx _14c8: add [bx+si+0x4f],bl _14cb: push dx _14cc: add [bp+di+0x4d],al _14cf: push ax _14d0: add [bx+si],al _14d2: push ax _14d3: push dx _14d4: call subroutine_1196 _14d7: jc __14f4 _14d9: ;; mov dx,ax db 0x8b, 0xd0 _14db: in al,dx _14dc: push ax _14dd: mov_____ax_dx _14df: call subroutine_2cde_print_hex_word _14e2: mov bx,cstr_14fa_space_minus_space _14e5: call subroutine_2e42_print_cstr _14e8: pop ax _14e9: call subroutine_2cd2_print_hex_byte _14ec: mov al,CR _14ee: call subroutine_2e32_print_character _14f1: jmp short __14f7 _14f3: nop ; __14f4: call subroutine_0e1e ; __14f7: pop dx _14f8: pop ax _14f9: ret ; cstr_14fa_space_minus_space: db " - ",0 ; ; ; _14fe: db 0xC3,$00 ; subroutine_1500_set_carry_if_alpha: push ax _1501: call subroutine_31a3 _1504: cmp al,'A' _1506: jl exit_1510 _1508: cmp al,'Z' _150a: jg exit_1510 _150c: stc _150d: jmp short exit_1511 _150f: nop ; exit_1510: clc ; exit_1511: pop ax _1512: ret ; ; db 0 ; subroutine_1514_set_carry_if_hex: _1514 push ax ; E8 8C 1C call subroutine_31a4 _1518: cmp al,'0' ; 0x30 _151a: jl non_hex _151c: cmp al,'9' ; 0x39 _151e: jng is_hex _1520: cmp al,'A' ; 0x41 _1522: jl non_hex _1524: cmp al,'F' ; 0x46 _1526: jg non_hex ; is_hex: _1528: stc _1529: jmp short exit_152d _152b: nop ; non_hex: __152c: clc ; exit_152d: pop ax _152e: ret ; _L152f: db 0 subroutine_1530_set_carry_if_greater_than_9: _1530: %if 1 db $3c, $30, $7c, $08 %else __152f: add [si],bh; __1531: xor [si+8],bh %endif _1534: cmp al,'9' ; 0x39 _1536: jg __153c _1538: stc _1539: jmp short __153d _153b: nop ; __153c: clc ; __153d: ret ; subroutine_153e: push bx _153f: push cx _1540: push di _1541: call subroutine_300c _1544: call subroutine_1118 _1547: push ax _1548: call subroutine_31a4 _154b: mov bh,al _154d: call subroutine_1118 _1550: push ax _1551: call subroutine_31a4 _1554: mov bl,al ; stet _1556: pop ax _1557: call subroutine_3376 _155a: pop ax _155b: call subroutine_3376 _155e: mov_____ax_bx _1560: mov di,0x15b2 _1563: mov cx,0xe _1566: nop _1567: push es _1568: push cs _1569: pop es _156a: repne scasw _156c: pop es _156d: jcxz __15ac _156f: push ax _1570: call subroutine_1118 _1573: call subroutine_1118 _1576: pop ax _1577: cmp ax,0x4453 _157a: jnz __1597 _157c: call subroutine_1118 _157f: cmp al,0x30 _1581: jz __1597 _1583: cmp al,0x31 _1585: jz __1599 _1587: call subroutine_3376 _158a: mov al,0x53 _158c: call subroutine_3376 _158f: mov al,0x44 _1591: call subroutine_3376 _1594: jmp short __15ac _1596: nop ; __1597: dec di _1598: dec di ; __1599: sub di,0x15b2 _159d: mov bx,di _159f: add bx,0x15ce _15a3: mov bx,[cs:bx] _15a6: mov ax,[bx] _15a8: stc _15a9: jmp short __15ad _15ab: nop ; __15ac: clc ; __15ad: pop di _15ae: pop cx _15af: pop bx _15b0: ret ; _15b1: nop _15b2: push di _15b3: inc cx _15b4: push di _15b5: inc dx _15b6: push di _15b7: inc bx _15b8: push di _15b9: inc sp _15ba: push ax _15bb: push bx _15bc: push ax _15bd: inc dx _15be: pop ax _15bf: dec cx _15c0: pop cx _15c1: dec cx _15c2: push bx _15c3: push bx _15c4: push bx _15c5: push ax _15c6: push bx _15c7: inc sp _15c8: push bx _15c9: inc sp _15ca: inc bx _15cb: push ax _15cc: add [bx+si],al _15ce: or al,[bx+si] _15d0: or al,0 _15d2: push cs _15d3: add [bx+si],dl _15d5: add [bx+si],bl _15d7: add [RAM_1200],dl _15db: add [si],dl _15dd: add [RAM_2000],bl _15e1: add [bp+si],bl _15e3: add [si],bl _15e5: add [si],ah _15e7: add [bx+si+0x53],dl _15ea: push cx _15eb: push dx _15ec: mov bx,cstr_1713 _15ef: call subroutine_2e42_print_cstr _15f2: push es _15f3: mov ax,0 _15f6: mov es,ax ; __15f8: mov dl,0 ; __15fa: mov ah,0 _15fc: call subroutine_0e30 _15ff: cmp al,0x3a _1601: jnz __15fa _1603: call subroutine_10fc _1606: mov dh,1 _1608: jc __1664 _160a: mov ah,0 _160c: mov cx,ax _160e: add dl,cl _1610: call subroutine_11fc _1613: mov dh,2 _1615: jc __1664 subroutine_1616 equ $1616 _1617: mov bx,ax _1619: add dl,bl _161b: add dl,bh _161d: call subroutine_10fc _1620: mov dh,3 _1622: jc __1664 _1624: ;; add dl,al db 0x02,0xd0 _1626: mov dh,4 _1628: cmp al,0 _162a: jnz __1632 _162c: call subroutine_099c _162f: jmp short __165d _1631: nop ; __1632: cmp al,1 _1634: jnz __1647 _1636: call subroutine_098c _1639: mov dh,0 _163b: jc __1664 _163d: pop es _163e: mov bx,cstr_1783 _1641: call subroutine_2e42_print_cstr _1644: jmp short __1679 _1646: nop ; __1647: cmp al,2 _1649: jnz __1653 _164b: call subroutine_0bdc _164e: jc __1664 _1650: jmp short __165d _1652: nop ; __1653: cmp al,3 _1655: jnz __1664 _1657: call subroutine_0bfc _165a: jmp short __165d _165c: nop ; __165d: mov al,'-' _165f: call subroutine_2e32_print_character _1662: jmp short __15f8 ; __1664: mov dl,dh _1666: mov dh,0 _1668: shl dx,1 _166a: mov bx,table_167e _166d: add bx,dx _166f: pop es _1670: mov bx,[cs:bx] _1673: call subroutine_2e42_print_cstr _1676: jmp short __1679 _1678: nop ; __1679: pop dx _167a: pop cx _167b: pop bx _167c: pop ax _167d: ret ; ; table_167e: dw cstr_1688 dw cstr_1699 dw cstr_16ae dw cstr_16c4 dw cstr_16d7 cstrings_audible_error_messages: ; cstr_1688: db BELL db "Checksum Error" db CR,NULL cstr_1699: db BELL db "Length Field Error" db CR,NULL cstr_16ae: db BELL db "Address Field Error" db CR,NULL cstr_16c4: db BELL db "Type Field Error" db CR,NULL cstr_16d7: db BELL db "Illegal Type Error" db CR,NULL cstr_16ec: db BELL db "Address Read Error" db CR,NULL cstr_1701: db BELL db "Data Read Error" db CR,NULL cstr_1713: db "Please use your terminal emulator to transmit" db CR db "your HEX file. A dot will be printed as each" db CR db "record is processed." db NULL cstr_1783: db CR db "Download complete - No errors." db CR,NULL ; ; ; Looks like a huge jump table. ; _17a4: dw subroutine_2b96,cstr_1ba5_NOP dw subroutine_3566,cstr_1c42_LXI dw subroutine_2b96,cstr_1c46_STAX_B _17b0: dw subroutine_2b96,cstr_1d35_INX dw subroutine_2b96,cstr_1ce1_INR_B dw subroutine_2b96,cstr_1ce7_DCR_B dw subroutine_04f0,cstr_1c74_MVI _17c0: dw subroutine_2b96,cstr_1d66_RLC dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_2b96,cstr_1cbc_DAD_B dw subroutine_2b96,cstr_1c4d_LDAX_B _17d0: dw subroutine_2b96,cstr_1d3a_DCX_B dw subroutine_2b96,cstr_1ced_INR_C dw subroutine_2b96,cstr_1cf3_DCR_C dw subroutine_04f0,cstr_1c74_MVI _17e0: dw subroutine_2b96,cstr_1d6a_RRC dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_3566,cstr_1c42_LXI dw subroutine_2b96,cstr_1c54_STAX_D _17f0: dw subroutine_2b96,cstr_1d40_INX_D dw subroutine_2b96,cstr_1cf9 dw subroutine_2b96,cstr_1cff dw subroutine_04f0,cstr_1c74_MVI _1800: dw subroutine_2b96,cstr_1d6e_RAL dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_2b96,cstr_1cc2_DAD_D dw subroutine_2b96,cstr_1c5b_LDAX_D _1810: dw subroutine_2b96,cstr_1d46_DCX_D dw subroutine_2b96,cstr_1d05 dw subroutine_2b96,cstr_1d0b dw subroutine_04f0,cstr_1c74_MVI _1820: dw subroutine_2b96,cstr_1d72_RAR dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_3566,cstr_1c42_LXI dw subroutine_353c,cstr_1c62_SHLD _1830: dw subroutine_2b96,cstr_1d4c_INX_H dw subroutine_2b96,cstr_1d11 dw subroutine_2b96,cstr_1d17 dw subroutine_04f0,cstr_1c74_MVI _1840: dw subroutine_2b96,cstr_1d76_DAA dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_2b96,cstr_1cc8_DAD_H dw subroutine_353c,cstr_1c67_LDHL _1850: dw subroutine_2b96,cstr_1d52_DCX_H dw subroutine_2b96,cstr_1d1d dw subroutine_2b96,cstr_1d23 dw subroutine_04f0,cstr_1c74_MVI _1860: dw subroutine_2b96,cstr_1bad_CMA dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_3566,cstr_1c42_LXI dw subroutine_353c,cstr_1c6c_STA _1870: dw subroutine_2b96,cstr_1d58_INX_SP dw subroutine_2b96,cstr_1d29 dw subroutine_2b96,cstr_1d2f dw subroutine_04f0,cstr_1c74_MVI _1880: dw subroutine_2b96,cstr_1ba9_STC dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_2b96,cstr_1cce_DAD_SP dw subroutine_353c,cstr_1c70_LDA _1890: dw subroutine_2b96,cstr_1d5f_DCX_SP dw subroutine_2b96,cstr_1cd5_INR_A dw subroutine_2b96,cstr_1cdb_DCR_A dw subroutine_04f0,cstr_1c74_MVI _18a0: dw subroutine_2b96,cstr_1bb5_CMC ; dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18b0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18c0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18d0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18e0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18f0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1900: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1910: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1920: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1930: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1940: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1950: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1960: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1970: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2b96,cstr_1bb1_HLT ; _1980: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1990: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV ; _19a0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD _19b0: dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD _19c0: dw subroutine_2c56,cstr_1c7c_ADD ; dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC _19d0: dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC _19e0: dw subroutine_2c56,cstr_1c84_ADC ; dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB _19f0: dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB _1a00: dw subroutine_2c56,cstr_1c80_SUB ; dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB _1a10: dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB _1a20: dw subroutine_2c56,cstr_1c88_SBB ; dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA _1a30: dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA _1a40: dw subroutine_2c56,cstr_1c8c_ANA ; dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA _1a50: dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA _1a60: dw subroutine_2c56,cstr_1c90_XRA ; dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA _1a70: dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA _1a80: dw subroutine_2c56,cstr_1c94_ORA ; dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP _1a90: dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP _1aa0: dw subroutine_2c56,cstr_1c98_CMP ; dw subroutine_2b96,cstr_1dc9 dw subroutine_2b96,cstr_1c1b_POP_B dw subroutine_353c,cstr_1da9 _1ab0: dw subroutine_353c,cstr_1d9b_JMP dw subroutine_353c,cstr_1d89 dw subroutine_2b96,cstr_1c21_PUSH_B dw subroutine_04ce,cstr_1c9c_ADI _1ac0: dw subroutine_2b96,cstr_1bda_RST_0 dw subroutine_2b96,cstr_1dc6 dw subroutine_2b96,cstr_1dbb_RET dw subroutine_353c,cstr_1da6 _1ad0: dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_353c,cstr_1d86 dw subroutine_353c,cstr_1d7a_CALL dw subroutine_04ce,cstr_1ca4_ACI _1ae0: dw subroutine_2b96,cstr_1be0_RST_1 dw subroutine_2b96,cstr_1dc2 dw subroutine_2b96,cstr_1c28_POP_D dw subroutine_353c,cstr_1da2 _1af0: dw subroutine_04ce,cstr_1bd6_OUT dw subroutine_353c,cstr_1d82_CNC dw subroutine_2b96,cstr_1c2e_PUSH_D dw subroutine_04ce,cstr_1ca0_SUI _1b00: dw subroutine_2b96,cstr_1be6_RST_2 dw subroutine_2b96,cstr_1dbf dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_353c,cstr_1d9f _1b10: dw subroutine_04ce,cstr_1bd3_IN dw subroutine_353c,cstr_1d7f_CC dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_04ce,cstr_1ca8_SBI _1b20: dw subroutine_2b96,cstr_1bec_RST_3 dw subroutine_2b96,cstr_1dd7 dw subroutine_2b96,cstr_1c35_POP_H dw subroutine_353c,cstr_1db7 _1b30: dw subroutine_2b96,cstr_1bb9_XTHL dw subroutine_353c,cstr_1d97 dw subroutine_2b96,cstr_1c3b_PUSH_H dw subroutine_04ce,cstr_1cac_ANI _1b40: dw subroutine_2b96,cstr_1bf2_RST_4 dw subroutine_2b96,cstr_1dd3 dw subroutine_2b96,cstr_1bbe_PCHL dw subroutine_353c,cstr_1db3 _1b50: dw subroutine_2b96,cstr_1bc3_XCHG dw subroutine_353c,cstr_1d93 dw subroutine_0ec6,cstr_1ba4_null_string dw subroutine_04ce,cstr_1cb0_XR _1b60: dw subroutine_2b96,cstr_1bf8_RST_5 dw subroutine_2b96,cstr_1dcd dw subroutine_2b96,cstr_1c0a_POP_PSW dw subroutine_353c,cstr_1dad _1b70: dw subroutine_2b96,cstr_1bd0_DI dw subroutine_353c,cstr_1d8d dw subroutine_2b96,cstr_1c12_PUSH_PSW dw subroutine_04ce,cstr_1cb4_ORI _1b80: dw subroutine_2b96,cstr_1bfe_RST_6 dw subroutine_2b96,cstr_1dd0 dw subroutine_2b96,cstr_1bc8_SPHL dw subroutine_353c,cstr_1db0 _1b90: dw subroutine_2b96,cstr_1bcd_EI dw subroutine_353c,cstr_1d90 dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_04ce,cstr_1cb8_CPI _1ba0: dw subroutine_2b96,cstr_1c04_RST_7 cstr_1ba4_null_string: db 0 ; empty string cstr_1ba5_NOP: db "NOP",0 cstr_1ba9_STC: db "STC",0 cstr_1bad_CMA: db "CMA",0 cstr_1bb1_HLT: db "HLT",0 cstr_1bb5_CMC: db "CMC",0 cstr_1bb9_XTHL: db "XTHL",0 cstr_1bbe_PCHL: db "PCHL",0 cstr_1bc3_XCHG: db "XCHG",0 cstr_1bc8_SPHL: db "SPHL",0 cstr_1bcd_EI: db "EI",0 cstr_1bd0_DI: db "DI",0 cstr_1bd3_IN: db "IN",0 cstr_1bd6_OUT: db "OUT",0 ; ; ; cstr_1bda_RST_0: db "RST" db TAB db "0" db NULL ;1BDE: 30 '0' cstr_1be0_RST_1: db "RST" db TAB db "1" db NULL ;1BE4: 31 '1' cstr_1be6_RST_2: db "RST" db TAB db "2" db NULL cstr_1bec_RST_3: db "RST" db TAB db "3" ,NULL ;1BF0: 33 '3' cstr_1bf2_RST_4: db "RST" db TAB db "4" db NULL ;1BF6: 34 '4' cstr_1bf8_RST_5: db "RST" db TAB db "5" db NULL ;1BFC: 35 '5' cstr_1bfe_RST_6: db "RST" db TAB db "6" ,NULL ;1C02: 36 '6' cstr_1c04_RST_7: db "RST" db TAB db "7" db NULL ;1C08: 37 '7' cstr_1c0a_POP_PSW db "POP" db TAB db "PSW" ,NULL ;1C0E: 50 53 57 'PSW' cstr_1c12_PUSH_PSW: db "PUSH" db TAB db "PSW" db NULL ;1C17: 50 53 57 'PSW' cstr_1c1b_POP_B: db "POP" db TAB db "B" db NULL ;1C1F: 42 'B' cstr_1c21_PUSH_B: db "PUSH" db TAB db "B" db NULL ;1C26: 42 'B' cstr_1c28_POP_D: db "POP" db TAB db "D" db NULL ;1C2D: 00 cstr_1c2e_PUSH_D: db "PUSH" db TAB db "D" db NULL ;1C34: 00 cstr_1c35_POP_H: db "POP" db TAB db "H" db NULL ;1C3A: 00 cstr_1c3b_PUSH_H: db "PUSH" db TAB db "H" db NULL ;1C41: 00 cstr_1c42_LXI: db "LXI",0 ;1C42: 4C 58 49 'LXI' cstr_1c46_STAX_B: db "STAX" db TAB db "B" db NULL ;1C4C: 00 cstr_1c4d_LDAX_B: db "LDAX" db TAB db "B" db NULL cstr_1c54_STAX_D: db "STAX" db TAB db "D" db NULL ;1C5A: 00 cstr_1c5b_LDAX_D: db "LDAX" db TAB db "D" db NULL ;1C60: 44 'D' ; ; ; cstr_1c62_SHLD: db "SHLD" ,0 ;1C62: cstr_1c67_LDHL: db "LDHL" ,0 ;1C67: cstr_1c6c_STA: db "STA" ,0 ;1C6C: cstr_1c70_LDA: db "LDA" ,0 ;1C70: cstr_1c74_MVI: db "MVI" ,0 ;1C74: cstr_1c78_MOV: db "MOV" ,0 ;1C78: cstr_1c7c_ADD: db "ADD" ,0 ;1C7C: cstr_1c80_SUB: db "SUB" ,0 ;1C80: cstr_1c84_ADC: db "ADC" ,0 ;1C84: cstr_1c88_SBB: db "SBB" ,0 ;1C88: cstr_1c8c_ANA: db "ANA" ,0 ;1C8C: cstr_1c90_XRA: db "XRA" ,0 ;1C90: cstr_1c94_ORA: db "ORA" ,0 ;1C94: cstr_1c98_CMP: db "CMP" ,0 ;1C98: cstr_1c9c_ADI: db "ADI" ,0 ;1C9C: cstr_1ca0_SUI: db "SUI" ,0 ;1CA0: cstr_1ca4_ACI: db "ACI" ,0 ;1CA4: cstr_1ca8_SBI: db "SBI" ,0 ;1CA8: cstr_1cac_ANI: db "ANI" ,0 ;1CAC: cstr_1cb0_XR: db "XRI" ,0 ;1CB0: cstr_1cb4_ORI: db "ORI" ,0 ;1CB4: cstr_1cb8_CPI: db "CPI" ,0 ;1CB8: ; ; ; cstr_1cbc_DAD_B: db "DAD" db TAB db "B" db NULL cstr_1cc2_DAD_D: db "DAD" db TAB db "D" db NULL cstr_1cc8_DAD_H: db "DAD" db TAB db "H" db NULL cstr_1cce_DAD_SP: db "DAD" db TAB db "SP" db NULL cstr_1cd5_INR_A: db "INR" db TAB db "A" db NULL cstr_1cdb_DCR_A: db "DCR" db TAB db "A" db NULL cstr_1ce1_INR_B: db "INR" db TAB db "B" db NULL cstr_1ce7_DCR_B: db "DCR" db TAB db "B" db NULL cstr_1ced_INR_C: db "INR" db TAB db "C" db NULL cstr_1cf3_DCR_C: db "DCR" db TAB db "C" db NULL cstr_1cf9: db "INR" db TAB db "D" db NULL cstr_1cff: db "DCR" db TAB db "D" db NULL cstr_1d05: db "INR" db TAB db "E" db NULL cstr_1d0b: db "DCR" db TAB db "E" db NULL cstr_1d11: db "INR" db TAB db "H" db NULL cstr_1d17: db "DCR" db TAB db "H" db NULL cstr_1d1d: db "INR" db TAB db "L" db NULL cstr_1d23: db "DCR" db TAB db "L" db NULL cstr_1d29: db "INR" db TAB db "M" db NULL cstr_1d2f: db "DCR" db TAB db "M" db NULL cstr_1d35_INX: db "INX" db TAB db NULL cstr_1d3a_DCX_B: db "DCX" db TAB db "B" db NULL cstr_1d40_INX_D: db "INX" db TAB db "D" db NULL cstr_1d46_DCX_D: db "DCX" db TAB db "D" db NULL cstr_1d4c_INX_H: db "INX" db TAB db "H" db NULL cstr_1d52_DCX_H: db "DCX" db TAB db "H" db NULL cstr_1d58_INX_SP: db "INX" db TAB db "SP" db NULL cstr_1d5f_DCX_SP: db "DCX" db TAB db "SP" db NULL ; ; ; ; cstr_1d66_RLC: db "RLC",0 cstr_1d6a_RRC: db "RRC",0 cstr_1d6e_RAL: db "RAL",0 cstr_1d72_RAR: db "RAR",0 cstr_1d76_DAA: db "DAA",0 cstr_1d7a_CALL: db "CALL",0 cstr_1d7f_CC: db "CC",0 cstr_1d82_CNC: db "CNC",0 cstr_1d86: db "CZ",0 cstr_1d89: db "CNZ",0 cstr_1d8d: db "CP",0 cstr_1d90: db "CM",0 cstr_1d93: db "CPE",0 cstr_1d97: db "CPO",0 cstr_1d9b_JMP: db "JMP",0 cstr_1d9f: db "JC",0 cstr_1da2: db "JNC",0 cstr_1da6: db "JZ",0 cstr_1da9: db "JNZ",0 cstr_1dad: db "JP",0 cstr_1db0: db "JM",0 cstr_1db3: db "JPE",0 cstr_1db7: db "JPO",0 cstr_1dbb_RET: db "RET",0 cstr_1dbf: db "RC",0 cstr_1dc2: db "RNC",0 cstr_1dc6: db "RZ",0 cstr_1dc9: db "RNZ",0 cstr_1dcd: db "RP",0 cstr_1dd0: db "RM",0 cstr_1dd3: db "RPE",0 cstr_1dd7: db "RPO",0 db NULL ; end of table ; ; ; _1ddC: DW subroutine_31fc,cstr_23be_ADD _1de0: DW subroutine_31fc,cstr_23be_ADD DW subroutine_31fc,cstr_23be_ADD DW subroutine_31fc,cstr_23be_ADD DW subroutine_030a,cstr_23be_ADD _1df0: DW subroutine_030a,cstr_23be_ADD DW subroutine_4390,cstr_21e1 DW subroutine_4390,cstr_21e6 DW subroutine_31fc,cstr_23ce_OR _1e00: DW subroutine_31fc,cstr_23ce_OR DW subroutine_31fc,cstr_23ce_OR DW subroutine_31fc,cstr_23ce_OR DW subroutine_030a,cstr_23ce_OR _1e10: DW subroutine_030a,cstr_23ce_OR DW subroutine_4390,cstr_21e1 DW subroutine_338c,cstr_21e0 DW subroutine_31fc,cstr_23c2_ADC _1e20: DW subroutine_31fc,cstr_23c2_ADC DW subroutine_31fc,cstr_23c2_ADC DW subroutine_31fc,cstr_23c2_ADC DW subroutine_030a,cstr_23c2_ADC _1e30: DW subroutine_030a,cstr_23c2_ADC DW subroutine_4390,cstr_21e1 DW subroutine_4390,cstr_21e6 DW subroutine_31fc,cstr_23d1_SBB _1e40: DW subroutine_31fc,cstr_23d1_SBB DW subroutine_31fc,cstr_23d1_SBB DW subroutine_31fc,cstr_23d1_SBB DW subroutine_030a,cstr_23d1_SBB _1e50: DW subroutine_030a,cstr_23d1_SBB DW subroutine_4390,cstr_21e1 DW subroutine_4390,cstr_21e6 DW subroutine_31fc,cstr_23c6_AND _1e60: DW subroutine_31fc,cstr_23c6_AND DW subroutine_31fc,cstr_23c6_AND DW subroutine_31fc,cstr_23c6_AND DW subroutine_030a,cstr_23c6_AND _1e70: DW subroutine_030a,cstr_23c6_AND dw subroutine_2e20,cstr_2323 dw subroutine_2b98,cstr_22fe DW subroutine_31fc,cstr_23d5_SUB _1e80: DW subroutine_31fc,cstr_23d5_SUB DW subroutine_31fc,cstr_23d5_SUB DW subroutine_31fc,cstr_23d5_SUB DW subroutine_030a,cstr_23d5_SUB _1e90: DW subroutine_030a,cstr_23d5_SUB dw subroutine_2e20,cstr_232c dw subroutine_2b98,cstr_230a DW subroutine_31fc,cstr_23ca_XOR _1ea0: DW subroutine_31fc,cstr_23ca_XOR DW subroutine_31fc,cstr_23ca_XOR DW subroutine_31fc,cstr_23ca_XOR DW subroutine_030a,cstr_23ca_XOR _1eb0: DW subroutine_030a,cstr_23ca_XOR dw subroutine_2e20,cstr_2328 dw subroutine_2b98,cstr_2304 DW subroutine_31fc,cstr_23d9_CMP _1ec0: DW subroutine_31fc,cstr_23d9_CMP DW subroutine_31fc,cstr_23d9_CMP DW subroutine_31fc,cstr_23d9_CMP DW subroutine_030a,cstr_23d9_CMP _1ed0: DW subroutine_030a,cstr_23d9_CMP DW subroutine_2e20,cstr_231e DW subroutine_2b98,cstr_2310 DW subroutine_2bb4,cstr_21ea _1ee0: DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea _1ef0: DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ee _1f00: DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee _1f10: DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21e1 _1f20: DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 _1f30: DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e6 _1f40: DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 _1f50: DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 DW subroutine_4390,cstr_21e1 _1f60: DW subroutine_4390,cstr_21e6 dw subroutine_282e,cstr_2392 DW subroutine_0ca0,cstr_21e0 dw subroutine_2e20,cstr_23a9 _1f70: dw subroutine_2e20,cstr_23a4 DW subroutine_0ca0,cstr_21e0 DW subroutine_0ca0,cstr_21e0 DW subroutine_4390,cstr_21e1 _1f80: DW subroutine_282e,cstr_23e2_MUL DW subroutine_4390,cstr_21e1 DW subroutine_282e,cstr_23e2_MUL DW subroutine_2b98,cstr_22a6 _1f90: DW subroutine_2b98,cstr_22bb DW subroutine_2b98,cstr_22d0 DW subroutine_2b98,cstr_22e7 DW subroutine_03bc,cstr_21e0 _1fa0: DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 _1fb0: DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 _1fc0: DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 _1fd0: DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_13c4,cstr_21e0 _1fe0: DW subroutine_13c4,cstr_21e0 DW subroutine_13c4,cstr_21e0 DW subroutine_13c4,cstr_21e0 DW subroutine_31fc,cstr_23dd_TEST _1ff0: DW subroutine_31fc,cstr_23dd_TEST DW subroutine_31fc,cstr_2330 DW subroutine_31fc,cstr_2330 DW subroutine_31fc,cstr_23ba_MOV _2000: DW subroutine_31fc,cstr_23ba_MOV DW subroutine_31fc,cstr_23ba_MOV DW subroutine_31fc,cstr_23ba_MOV DW subroutine_31fc,cstr_23ba_MOV _2010: DW subroutine_31fc,cstr_2274 DW subroutine_31fc,cstr_23ba_MOV DW subroutine_31fc,cstr_21e6 DW subroutine_2b98,cstr_2339 _2020: DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 _2030: DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 DW subroutine_2b98,cstr_2268 _2040: DW subroutine_2b98,cstr_226e DW subroutine_03bc,cstr_21f5 DW subroutine_2b98,cstr_2342 DW subroutine_4390,cstr_21e1 _2050: DW subroutine_4390,cstr_21e6 DW subroutine_2b98,cstr_2216 DW subroutine_2b98,cstr_2221 DW subroutine_030a,cstr_23ba_MOV _2060: DW subroutine_030a,cstr_23ba_MOV DW subroutine_030a,cstr_23ba_MOV DW subroutine_030a,cstr_23ba_MOV DW subroutine_2b98,cstr_2243 _2070: DW subroutine_2b98,cstr_2261 DW subroutine_2b98,cstr_223c DW subroutine_2b98,cstr_225a DW subroutine_030a,cstr_23dd_TEST _2080: DW subroutine_030a,cstr_23dd_TEST DW subroutine_2b98,cstr_2237 DW subroutine_2b98,cstr_2255 DW subroutine_2b98,cstr_2232 _2090: DW subroutine_2b98,cstr_2250 DW subroutine_2b98,cstr_222c DW subroutine_2b98,cstr_224a DW subroutine_2b46,cstr_23ba_MOV _20a0: DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV _20b0: DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV _20c0: DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV _20d0: DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV DW subroutine_2b46,cstr_23ba_MOV DW subroutine_3050,cstr_21e0 _20e0: DW subroutine_3050,cstr_21e0 DW subroutine_282e,cstr_21fa DW subroutine_2b98,cstr_21fa DW subroutine_31fc,cstr_23ba_MOV _20f0: DW subroutine_31fc,cstr_23ba_MOV DW subroutine_13c4,cstr_23ba_MOV DW subroutine_13c4,cstr_23ba_MOV DW subroutine_282e,cstr_23e6 _2100: DW subroutine_2b98,cstr_23ee DW subroutine_282e,cstr_21fe DW subroutine_2b98,cstr_21fe DW subroutine_2b98,cstr_220c _2110: DW subroutine_282e,cstr_2208 DW subroutine_2b98,cstr_2211 DW subroutine_2b98,cstr_2203 DW subroutine_3050,cstr_21e0 _2120: DW subroutine_3050,cstr_21e0 DW subroutine_3050,cstr_21e0 DW subroutine_3050,cstr_21e0, DW subroutine_2b98,cstr_2316 _2130: DW subroutine_2b98,cstr_231a DW subroutine_0ca0,cstr_21e0, DW subroutine_2b98,cstr_2334 DW _0000,_0000 _2140: DW _0000,_0000 DW _0000,_0000 DW _0000,_0000 DW _0000,_0000 _2150: DW _0000,_0000 DW _0000,_0000 DW _0000,_0000 DW subroutine_03bc,cstr_237b _2160: DW subroutine_03bc,cstr_2382 DW subroutine_03bc,cstr_2388 DW subroutine_03bc,cstr_238d ; DW subroutine_282e,cstr_2279 _2170: DW subroutine_282e,cstr_2279 DW subroutine_282e,cstr_227c DW subroutine_282e,cstr_227c ; DW subroutine_03bc,cstr_21f5 _2180: DW subroutine_03bc,cstr_21f2 DW subroutine_03bc,cstr_21f2 DW subroutine_03bc,cstr_21f2 ; DW subroutine_2b98,cstr_2280 _2190: DW subroutine_2b98,cstr_2289 DW subroutine_2b98,cstr_2292 DW subroutine_2b98,cstr_229c ; DW subroutine_2e20,cstr_2398 _21a0: DW subroutine_0ca0,cstr_21e0 DW subroutine_2e20,cstr_23a0 DW subroutine_2e20,cstr_23af DW subroutine_2b98,cstr_233d _21b0: DW subroutine_2b98,cstr_2351 DW subroutine_1272,cstr_21e0 DW subroutine_1272,cstr_21e0 DW subroutine_2b98,cstr_2359 _21c0: DW subroutine_2b98,cstr_2361 DW subroutine_2b98,cstr_234e DW subroutine_2b98,cstr_234b DW subroutine_2b98,cstr_2369 _21d0: DW subroutine_2b98,cstr_2372 DW subroutine_1344,cstr_21e0 DW subroutine_1344,cstr_21e0 DW subroutine_3628,cstr_21e0 cstr_21e0: db 0 ; cstr_21e1: db "PUSH" ,NULL ; cstr_21e6: db "POP" ,NULL cstr_21ea: db "INC" ,NULL cstr_21ee: db "DEC" ,NULL cstr_21f2: db "BR" ,NULL cstr_21f5: db "CALL" ,NULL cstr_21fa: db "RET" ,NULL cstr_21fe: db "RETF" ,NULL cstr_2203: db "RETI" ,NULL cstr_2208: db "BRK" ,NULL cstr_220c: db "BRK3" ,NULL cstr_2211: db "BRKV" ,NULL ; cstr_2216: db "MOV" db TAB, db "AH,PSW" db NULL ;2220: 00 cstr_2221: db "MOV" db TAB, db "PSW,AH" db NULL ;222B: 00 ; cstr_222c: db "CMPMB" ,NULL ;222C: 43 4D 50 4D 42 'CMPMB' cstr_2232: db "LDMB" ,NULL ;2232: 4C 44 4D 42 'LDMB' cstr_2237: db "STMB" ,NULL ;2237: 53 54 4D 42 'STMB' cstr_223c: db "CMPBKB" ,NULL ;223C: 43 4D 50 42 4B 42 'CMPBKB' cstr_2243: db "MOVBKB" ,NULL ;2243: 4D 4F 56 42 4B 42 'MOVBKB' cstr_224a: db "CMPMW" ,NULL ;224A: 43 4D 50 4D 57 'CMPMW' cstr_2250: db "LDMW" ,NULL ;2250: 4C 44 4D 57 'LDMW' cstr_2255: db "STMW" ,NULL ;2255: 53 54 4D 57 'STMW' cstr_225a: db "CMPBKW" ,NULL ;225A: 43 4D 50 42 4B 57 'CMPBKW' cstr_2261: db "MOVBKW" ,NULL ;2261: 4D 4F 56 42 4B 57 'MOVBKW' cstr_2268: db "CVTBW" ,NULL ;2268: 43 56 54 42 57 'CVTBW' cstr_226e: db "CVTWL" ,NULL ;226E: 43 56 54 57 4C 'CVTWL' cstr_2274: db "LDEA" ,NULL ;2274: 4C 44 45 41 'LDEA' cstr_2279: db "IN" ,NULL ;2279: 49 4E 'IN' cstr_227c: db "OUT" ,NULL ; ; ; ; cstr_2280: db "IN" db TAB db "AL,DW" db NULL ;2283: 41 4C 2C 44 57 'AL,DW' cstr_2289: db "IN" db TAB db "AW,DW" db NULL ;228C: 41 57 2C 44 57 'AW,DW' cstr_2292: db "OUT" db TAB db "DW,AL" db NULL ;2296: 44 57 2C 41 4C 'DW,AL' cstr_229c: db "OUT" db TAB db "DW,AW" db NULL ;22A0: 44 57 2C 41 57 'DW,AW' cstr_22a6: db "INM" db TAB db "BYTE PTR [IY],DW" db NULL ;22AA: 42 59 54 45 20 50 54 52 20 5B 49 59 5D 2C 44 57 'BYTE PTR [IY],DW' cstr_22bb: db "INM" db TAB db "WORD PTR [IY],DW" db NULL ;22BF: 57 4F 52 44 20 50 54 52 20 5B 49 59 5D 2C 44 57 'WORD PTR [IY],DW' cstr_22d0: db "OUTM" db TAB db "DW, BYTE PTR [IX]" db NULL ;22D5: 44 57 2C 20 42 59 54 45 20 50 54 52 20 5B 49 58 5D 'DW, BYTE PTR [IX]' cstr_22e7: db "OUTM" db TAB db "DW, WORD PTR [IX]" db NULL ;22FD: 00 ; ; ; cstr_22fe: db "ADJ4A" ,NULL cstr_2304: db "ADJBA" ,NULL cstr_230a: db "ADJ4S" ,NULL cstr_2310: db "ADJBS" ,NULL cstr_2316: db "AAM" ,NULL cstr_231a: db "AAD" ,NULL cstr_231e: db "DS0:" ,NULL cstr_2323: db "DS1:" ,NULL cstr_2328: db "SS:" ,NULL cstr_232c: db "PS:" ,NULL cstr_2330: db "XCH" ,NULL cstr_2334: db "XLAT" ,NULL cstr_2339: db "NOP" ,NULL cstr_233d: db "HALT" ,NULL cstr_2342: db "POLL" ,NULL cstr_2347: db "ESC" ,NULL cstr_234b: db "EI" ,NULL cstr_234e: db "DI" ,NULL ; ; ; cstr_2351: db "NOT1" db TAB db "CY" db NULL ;2356: 43 59 'CY' cstr_2359: db "CLR1" db TAB db "CY" db NULL ;2360: 00 cstr_2361: db "SET1" db TAB db "CY" db NULL ;2368: 00 cstr_2369: db "CLR1" db TAB db "DIR" db NULL ;2371: 00 cstr_2372: db "SET1" db TAB db "DIR" db NULL ; ; ; cstr_237b: db "DBNZNE" ,NULL cstr_2382: db "DBNZE" ,NULL cstr_2388: db "DBNZ" ,NULL cstr_238d: db "BCWZ" ,NULL cstr_2392: db "BOUND" ,NULL cstr_2398: db "BUSLOCK" ,NULL cstr_23a0: db "REP" ,NULL cstr_23a4: db "REPC" ,NULL cstr_23a9: db "REPNC" ,NULL cstr_23af: db "REPZ" ,NULL cstr_23b4: db "REPNZ" ,NULL cstr_23ba_MOV: db "MOV" ,NULL cstr_23be_ADD: db "ADD" ,NULL cstr_23c2_ADC: db "ADC" ,NULL cstr_23c6_AND: db "AND" ,NULL cstr_23ca_XOR: db "XOR" ,NULL cstr_23ce_OR: db "OR" ,NULL cstr_23d1_SBB: db "SBB" ,NULL cstr_23d5_SUB: db "SUB" ,NULL cstr_23d9_CMP: db "CMP" ,NULL cstr_23dd_TEST: db "TEST" ,NULL cstr_23e2_MUL: db "MUL" ,NULL cstr_23e6: db "PREPARE" ,NULL cstr_23ee: db "DISPOSE" ,NULL ; ; This is probably a data table: ; pointers into the special function register names ; string_ptr_table_23f6: _23f6: DW cstr_25fe,cstr_2606,cstr_260e,cstr_25f6,cstr_25f6 _2400: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_2616,cstr_261e,cstr_2626,cstr_25f6,cstr_25f6 _2410: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_262e,cstr_2636,cstr_263e,cstr_25f6,cstr_25f6 _2420: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2430: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2440: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2450: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2460: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_2646,cstr_25f6,cstr_25f6,cstr_264e,cstr_25f6 _2470: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_2656,cstr_25f6,cstr_25f6,cstr_25f6,cstr_265e _2480: DW cstr_2666,cstr_266e,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_2676 _2490: DW cstr_267e,cstr_2686,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _24a0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _24b0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_268e,cstr_25f6,cstr_2696,cstr_25f6,cstr_25f6 _24c0: DW cstr_269e,cstr_26a6,cstr_25f6,cstr_26ae,cstr_26b6,cstr_26be,cstr_26c6,cstr_26ce _24d0: DW cstr_26d6,cstr_26de,cstr_25f6,cstr_26e6,cstr_25f6,cstr_26ee,cstr_25f6,cstr_25f6 _24e0: DW cstr_26f6,cstr_26fe,cstr_25f6,cstr_2706,cstr_270e,cstr_2716,cstr_271e,cstr_2726 _24f0: DW cstr_272e,cstr_2736,cstr_25f6,cstr_273e,cstr_2746,cstr_274e,cstr_2756,cstr_25f6 _2500: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_275e,cstr_2766,cstr_276e,cstr_2776,cstr_25f6 _2510: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_277e,cstr_2786,cstr_25f6,cstr_25f6,cstr_278e _2520: DW cstr_2796,cstr_279e,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_27a6 _2530: DW cstr_27ae,cstr_27b6,cstr_25f6,cstr_27be,cstr_27c6,cstr_27ce,cstr_27d6,cstr_25f6 _2540: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_27de _2550: DW cstr_27e6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2560: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2570: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2580: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2590: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _25a0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _25b0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_27ee,cstr_27f6,cstr_25f6,cstr_25f6,cstr_25f6 _25c0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_27fe,cstr_2806,cstr_280e,cstr_2816,cstr_281e _25d0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _25e0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _25f0: DW cstr_25f6,cstr_25f6,cstr_2826 ;; db 0x26 ; '&' ; cstr_25f6 db "......." ,NULL ; ; Special function registers ; See https://www.renesas.com/en/document/mah/v25-v35-168-16-bit-single-chip-microcontrollers-hardware page 78 to 80. ; Base address = xxF00H ; __cstrings_special_function_register_names: cstr_25fe: db " P0 " ,NULL ;25FE: 20 50 30 20 20 20 20 ' P0 ' cstr_2606: db " PM0 " ,NULL ;2606: 20 50 4D 30 20 20 20 ' PM0 ' cstr_260e: db " PMC0 " ,NULL ;260E: 20 50 4D 43 30 20 20 ' PMC0 ' cstr_2616: db " P1 " ,NULL ;2616: 20 50 31 20 20 20 20 ' P1 ' cstr_261e: db " PM1 " ,NULL ;261E: 20 50 4D 31 20 20 20 ' PM1 ' cstr_2626: db " PMC1 " ,NULL ;2626: 20 50 4D 43 31 20 20 ' PMC1 ' cstr_262e: db " P2 " ,NULL ;262E: 20 50 32 20 20 20 20 ' P2 ' cstr_2636: db " PM2 " ,NULL ;2636: 20 50 4D 32 20 20 20 ' PM2 ' cstr_263e: db " PMC2 " ,NULL ;263E: 20 50 4D 43 32 20 20 ' PMC2 ' cstr_2646: db " PT " ,NULL ;2646: 20 50 54 20 20 20 20 ' PT ' cstr_264e: db " PMT " ,NULL ;264E: 20 50 4D 54 20 20 20 ' PMT ' cstr_2656: db " INTM " ,NULL ;2656: 20 49 4E 54 4D 20 20 ' INTM ' cstr_265e: db " EMS0 " ,NULL ;265E: 20 45 4D 53 30 20 20 ' EMS0 ' cstr_2666: db " EMS1 " ,NULL ;2666: 20 45 4D 53 31 20 20 ' EMS1 ' cstr_266e: db " EMS2 " ,NULL ;266E: 20 45 4D 53 32 20 20 ' EMS2 ' cstr_2676: db " EXIC0 " ,NULL ;2676: 20 45 58 49 43 30 20 ' EXIC0 ' cstr_267e: db " EXIC1 " ,NULL ;267E: 20 45 58 49 43 31 20 ' EXIC1 ' cstr_2686: db " EXIC2 " ,NULL ;2686: 20 45 58 49 43 32 20 ' EXIC2 ' cstr_268e: db " RXB0 " ,NULL ;268E: 20 52 58 42 30 20 20 ' RXB0 ' cstr_2696: db " TXB0 " ,NULL ;2696: 20 54 58 42 30 20 20 ' TXB0 ' cstr_269e: db " SRMS0 " ,NULL ;269E: 20 53 52 4D 53 30 20 ' SRMS0 ' cstr_26a6: db " STMS0 " ,NULL ;26A6: 20 53 54 4D 53 30 20 ' STMS0 ' cstr_26ae: db " SCM0 " ,NULL ;26AE: 20 53 43 4D 30 20 20 ' SCM0 ' cstr_26b6: db " SCC0 " ,NULL ;26B6: 20 53 43 43 30 20 20 ' SCC0 ' cstr_26be: db " BRG0 " ,NULL ;26BE: 20 42 52 47 30 20 20 ' BRG0 ' cstr_26c6: db " SCE0 " ,NULL ;26C6: 20 53 43 45 30 20 20 ' SCE0 ' cstr_26ce: db " SEIC0 " ,NULL ;26CE: 20 53 45 49 43 30 20 ' SEIC0 ' cstr_26d6: db " SRIC0 " ,NULL ;26D6: 20 53 52 49 43 30 20 ' SRIC0 ' cstr_26de: db " STIC0 " ,NULL ;26DE: 20 53 54 49 43 30 20 ' STIC0 ' cstr_26e6: db " RXB1 " ,NULL ;26E6: 20 52 58 42 31 20 20 ' RXB1 ' cstr_26ee: db " TXB1 " ,NULL ;26EE: 20 54 58 42 31 20 20 ' TXB1 ' cstr_26f6: db " SRMS1 " ,NULL ;26F6: 20 53 52 4D 53 31 20 ' SRMS1 ' cstr_26fe: db " STMS1 " ,NULL ;26FE: 20 53 54 4D 53 31 20 ' STMS1 ' cstr_2706: db " SCM1 " ,NULL ;2706: 20 53 43 4D 31 20 20 ' SCM1 ' cstr_270e: db " SCC1 " ,NULL ;270E: 20 53 43 43 31 20 20 ' SCC1 ' cstr_2716: db " BRG1 " ,NULL ;2716: 20 42 52 47 31 20 20 ' BRG1 ' cstr_271e: db " SCE1 " ,NULL ;271E: 20 53 43 45 31 20 20 ' SCE1 ' cstr_2726: db " SEIC1 " ,NULL ;2726: 20 53 45 49 43 31 20 ' SEIC1 ' cstr_272e: db " SRIC1 " ,NULL ;272E: 20 53 52 49 43 31 20 ' SRIC1 ' cstr_2736: db " STIC1 " ,NULL ;2736: 20 53 54 49 43 31 20 ' STIC1 ' cstr_273e: db " TM0 " ,NULL ;273E: 20 54 4D 30 20 20 20 ' TM0 ' cstr_2746: db " TM0H " ,NULL ;2746: 20 54 4D 30 48 20 20 ' TM0H ' cstr_274e: db " MD0 " ,NULL ;274E: 20 4D 44 30 20 20 20 ' MD0 ' cstr_2756: db " MD0H " ,NULL ;2756: 20 4D 44 30 48 20 20 ' MD0H ' cstr_275e: db " TM1 " ,NULL ;275E: 20 54 4D 31 20 20 20 ' TM1 ' cstr_2766: db " TM1H " ,NULL ;2766: 20 54 4D 31 48 20 20 ' TM1H ' cstr_276e: db " MD1 " ,NULL ;276E: 20 4D 44 31 20 20 20 ' MD1 ' cstr_2776: db " MD1H " ,NULL ;2776: 20 4D 44 31 48 20 20 ' MD1H ' cstr_277e: db " TMC0 " ,NULL ;277E: 20 54 4D 43 30 20 20 ' TMC0 ' cstr_2786: db " TMC1 " ,NULL ;2786: 20 54 4D 43 31 20 20 ' TMC1 ' cstr_278e: db " TMMS0 " ,NULL ;278E: 20 54 4D 4D 53 30 20 ' TMMS0 ' cstr_2796: db " TMMS1 " ,NULL ;2796: 20 54 4D 4D 53 31 20 ' TMMS1 ' cstr_279e: db " TMMS2 " ,NULL ;279E: 20 54 4D 4D 53 32 20 ' TMMS2 ' cstr_27a6: db " TMIC0 " ,NULL ;27A6: 20 54 4D 49 43 30 20 ' TMIC0 ' cstr_27ae: db " TMIC1 " ,NULL ;27AE: 20 54 4D 49 43 31 20 ' TMIC1 ' cstr_27b6: db " TMIC2 " ,NULL ;27B6: 20 54 4D 49 43 32 20 ' TMIC2 ' cstr_27be: db " DMAC0 " ,NULL ;27BE: 20 44 4D 41 43 30 20 ' DMAC0 ' cstr_27c6: db " DMAM0 " ,NULL ;27C6: 20 44 4D 41 4D 30 20 ' DMAM0 ' cstr_27ce: db " DMAC1 " ,NULL ;27CE: 20 44 4D 41 43 31 20 ' DMAC1 ' cstr_27d6: db " DMAM1 " ,NULL ;27D6: 20 44 4D 41 4D 31 20 ' DMAM1 ' cstr_27de: db " DIC0 " ,NULL ;27DE: 20 44 49 43 30 20 20 ' DIC0 ' cstr_27e6: db " DIC1 " ,NULL ;27E6: 20 44 49 43 31 20 20 ' DIC1 ' cstr_27ee: db " STBC " ,NULL ;27EE: 20 53 54 42 43 20 20 ' STBC ' cstr_27f6: db " RFM " ,NULL ;27F6: 20 52 46 4D 20 20 20 ' RFM ' cstr_27fe: db " WTC " ,NULL ;27FE: 20 57 54 43 20 20 20 ' WTC ' cstr_2806: db " WTCH " ,NULL ;2806: 20 57 54 43 48 20 20 ' WTCH ' cstr_280e: db " FLAG " ,NULL ;280E: 20 46 4C 41 47 20 20 ' FLAG ' cstr_2816: db " PRC " ,NULL ;2816: 20 50 52 43 20 20 20 ' PRC ' cstr_281e: db " TBIC " ,NULL ;281E: 20 54 42 49 43 20 20 ' TBIC ' cstr_2826: db " IDB " ,NULL ;2826: 20 49 44 42 20 20 20 ' IDB ' ; ; End of special function register names ; subroutine_282e: pusha _282f: cmp al,0x6b _2831: jz __2850 _2833: cmp al,0x69 _2835: jz __285b _2837: mov byte [RAM_00fe],0 _283c: mov byte [RAM_00ff],0 _2841: mov cx,1 _2844: mov byte [RAM_014c],1 _2849: cmp al,0xe4 _284b: jnz __289d _284d: jmp __28d1 ; __2850: mov cx,1 _2853: mov byte [RAM_0138],2 _2858: jmp short __2863 _285a: nop ; __285b: mov cx,2 _285e: mov byte [RAM_0138],1 ; __2863: mov al,3 _2865: mov bx,[RAM_013f] _2869: mov ah,[es:bx+si] _286c: mov [bx+RAM_0141],ah _2870: inc word [RAM_013f] _2874: call subroutine_09f6 _2877: mov bx,[RAM_013f] ; __287b: mov al,[es:bx+si] _287e: mov [bx+RAM_0141],al _2882: push bx _2883: sub bx,[RAM_013f] _2887: add bx,0x0132 _288b: mov [bx],al _288d: pop bx _288e: inc bx _288f: loop __287b _2891: mov [RAM_013f],bx _2895: mov byte [RAM_014c],3 _289a: jmp __29de ; __289d: cmp al,0xe5 _289f: jnz __28a4 _28a1: jmp short __2906 _28a3: nop ; __28a4: cmp al,0xe6 _28a6: jnz __28ab _28a8: jmp short __28ee _28aa: nop ; __28ab: cmp al,0xe7 _28ad: jnz __28b2 _28af: jmp short __2923 _28b1: nop ; __28b2: cmp al,0xc2 _28b4: jnz __28b9 _28b6: jmp __2943 ; __28b9: cmp al,0xca _28bb: jnz __28c0 _28bd: jmp __2943 ; __28c0: cmp al,0xcd _28c2: jnz __28c7 _28c4: jmp short __293b _28c6: nop ; __28c7: cmp al,0xc8 _28c9: jnz __28ce _28cb: jmp __294e ; __28ce: jmp __29c5 ; __28d1: mov byte [RAM_00ff],1 _28d6: mov word [RAM_0130],table_29e0 _28dc: mov byte [RAM_0136],2 _28e1: mov byte [RAM_0137],0 _28e6: mov byte [RAM_014c],2 _28eb: jmp short __295e _28ed: nop ; __28ee: mov word [RAM_0130],table_29e0 _28f4: mov byte [RAM_0136],2 _28f9: mov byte [RAM_0137],0 _28fe: mov byte [RAM_014c],2 _2903: jmp short __295e _2905: nop ; __2906: mov byte [RAM_00ff],1 _290b: mov word [RAM_0130],0x29e3 _2911: mov byte [RAM_0136],2 _2916: mov byte [RAM_0137],0 _291b: mov byte [RAM_014c],2 _2920: jmp short __295e _2922: nop ; __2923: mov word [RAM_0130],0x29e3 _2929: mov byte [RAM_0136],2 _292e: mov byte [RAM_0137],0 _2933: mov byte [RAM_014c],2 _2938: jmp short __295e _293a: nop ; __293b: mov byte [RAM_0136],2 _2940: jmp short __295e _2942: nop ; __2943: mov cx,2 _2946: mov byte [RAM_0136],1 _294b: jmp short __295e _294d: nop ; __294e: mov byte [RAM_00fe],1 _2953: mov cx,2 _2956: mov byte [RAM_014c],2 _295b: jmp short __295e _295d: nop ; __295e: mov bx,[RAM_013f] ; __2962: mov al,[es:bx+si] _2965: mov [bx+RAM_0141],al _2969: push bx _296a: sub bx,[RAM_013f] _296e: add bx,RAM_012e _2972: mov [bx],al _2974: pop bx _2975: inc bx _2976: loop __2962 _2978: mov [RAM_013f],bx _297c: test byte [RAM_00ff],1 _2981: jz __2997 _2983: mov ax,[RAM_012e] _2986: xchg ax,[RAM_0130] _298a: mov [RAM_012e],ax _298d: mov al,[RAM_0136] _2990: xchg al,[RAM_0137] _2994: mov [RAM_0136],al ; __2997: test byte [RAM_00fe],1 _299c: jz __29de _299e: mov ax,[RAM_012e] _29a1: mov_____al_ah _29a3: mov [RAM_0130],ax _29a6: mov bx,[RAM_013f] _29aa: mov al,[es:bx+si] _29ad: mov [bx+RAM_0141],al _29b1: inc word [RAM_013f] _29b5: mov [RAM_0130],ax _29b8: mov byte [RAM_0136],1 _29bd: mov byte [RAM_0137],2 _29c2: jmp short __29de _29c4: nop ; __29c5: mov al,3 _29c7: mov bx,[RAM_013f] _29cb: mov ah,[es:bx+si] _29ce: mov [bx+RAM_0141],ah _29d2: inc word [RAM_013f] _29d6: call subroutine_09f6 _29d9: mov byte [RAM_014c],2 ; __29de: popa _29df: ret ; table_29e0: db $41,$4C,$00 table_29e3: db $41,$58,$00 subroutine_29e6: _29e6: push ax _29e7: push bx _29e8: push cx _29e9: push di _29ea: call subroutine_0f74 _29ed: call subroutine_0646 _29f0: mov bx,__2a58 _29f3: call subroutine_2e42_print_cstr ; __29f6: call subroutine_300c _29f9: call subroutine_1118 _29fc: call subroutine_31a4 _29ff: cmp al,0xd _2a01: jz __2a52 _2a03: call subroutine_1500_set_carry_if_alpha _2a06: jnc __2a4e _2a08: mov bh,al _2a0a: call subroutine_1118 _2a0d: call subroutine_31a4 _2a10: call subroutine_1500_set_carry_if_alpha _2a13: jnc __2a4e _2a15: mov ah,bh _2a17: mov di,0x2a5c _2a1a: mov cx,0x15 _2a1d: nop _2a1e: push es _2a1f: push cs _2a20: pop es _2a21: repne scasw _2a23: pop es _2a24: jcxz __2a4e _2a26: mov bx,di _2a28: dec bx _2a29: dec bx _2a2a: sub bx,0x2a5c _2a2e: hint_nop8 bx _2a31: add [si-0x142f],bx _2a35: add bx,0x2a86 _2a39: mov cl,[cs:bx] _2a3c: popf _2a3d: jnz __2a47 _2a3f: unpckhps xmm0,oword [RAM_0022] _2a44: jmp short __2a4c _2a46: nop ; __2a47: movlps qword [RAM_0022],xmm0 ; __2a4c: jmp short __29f6 ; __2a4e: stc _2a4f: jmp short __2a53 _2a51: nop ; __2a52: clc ; __2a53: pop di _2a54: pop cx _2a55: pop bx _2a56: pop ax _2a57: ret ; __2a58: or ax,0x2d _2a5b: nop _2a5c: push si _2a5d: dec di _2a5e: push si _2a5f: dec si _2a60: dec si _2a61: inc sp _2a62: push ax _2a63: push bp _2a64: dec cx _2a65: inc bp _2a66: dec cx _2a67: inc sp _2a68: dec cx _2a69: inc dx _2a6a: inc bp _2a6b: inc dx _2a6c: inc di _2a6d: dec si _2a6e: dec sp _2a6f: push ax _2a70: push dx _2a71: pop dx _2a72: pop dx _2a73: dec si _2a74: inc bx _2a75: inc cx _2a76: inc cx _2a77: dec si _2a78: inc bp _2a79: push ax _2a7a: dec di _2a7b: push ax _2a7c: inc bp _2a7d: dec cx _2a7e: inc sp _2a7f: dec cx _2a80: pop cx _2a81: inc bx _2a82: inc bx _2a83: dec si _2a84: add [bx+si],al _2a86: or cx,[bp+di] _2a88: or cl,[bp+si] _2a8a: or [bx+di],cx _2a8c: or [bx+si],cl _2a8e: pop es _2a8f: pop es _2a90: push es _2a91: push es _2a92: add al,4 _2a94: add al,[bp+si] _2a96: add [bx+di],ax _2a98: add [bx+si],al ; subroutine_2a9a: push ax _2a9b: push bx _2a9c: push cx _2a9d: push si _2a9e: call subroutine_2d54 _2aa1: jc __2ad9 _2aa3: push bx _2aa4: mov bx,si _2aa6: call subroutine_2e42_print_cstr _2aa9: mov al,space _2aab: call subroutine_2e32_print_character _2aae: pop bx _2aaf: mov ax,[bx] _2ab1: call subroutine_2cde_print_hex_word _2ab4: mov al,CR _2ab6: call subroutine_2e32_print_character _2ab9: mov al,colon _2abb: call subroutine_2e32_print_character _2abe: call subroutine_0f74 _2ac1: call subroutine_300c _2ac4: call subroutine_1118 _2ac7: cmp al,0xd _2ac9: jz __2ada _2acb: call subroutine_3376 _2ace: call subroutine_1196 _2ad1: jc __2ad9 _2ad3: mov [bx],ax _2ad5: clc _2ad6: jmp short __2ada _2ad8: nop ; __2ad9: stc __2ada: pop si _2adb: pop cx _2adc: pop bx _2add: pop ax _2ade: ret ; _2adf: add [bx+si+0x53],dl _2ae2: push cx _2ae3: mov bx,RAM_0100 _2ae6: call subroutine_2cea _2ae9: jc __2b3f _2aeb: cmp al,0 _2aed: jz __2afa _2aef: cmp al,1 _2af1: jz __2afd _2af3: cmp al,2 _2af5: jz __2b06 _2af7: jmp short __2b3f _2af9: nop ; __2afa: jmp short __2b3f _2afc: nop ; __2afd: mov ax,[RAM_001a] _2b00: mov [RAM_0100],ax _2b03: jmp short __2b09 _2b05: nop ; __2b06: jmp short __2b09 _2b08: nop ; __2b09: mov bx,RAM_0104 _2b0c: call subroutine_2cea _2b0f: jc __2b3f _2b11: cmp al,0 _2b13: jz __2b20 _2b15: cmp al,1 _2b17: jz __2b23 _2b19: cmp al,2 _2b1b: jz __2b2c _2b1d: jmp short __2b3f _2b1f: nop ; __2b20: jmp short __2b3f _2b22: nop ; __2b23: mov ax,[RAM_0100] _2b26: mov [RAM_0104],ax _2b29: jmp short __2b2f _2b2b: nop ; __2b2c: jmp short __2b2f _2b2e: nop ; __2b2f: call subroutine_1196 _2b32: jc __2b3f _2b34: mov cx,ax _2b36: mov bx,RAM_0100 _2b39: call subroutine_0b5c _2b3c: jmp short __2b42 _2b3e: nop ; __2b3f: call subroutine_0e1e ; __2b42: pop cx _2b43: pop bx _2b44: pop ax _2b45: ret ; subroutine_2b46: push ax _2b47: push bx _2b48: push cx _2b49: mov cl,1 _2b4b: mov byte [RAM_0137],2 _2b50: hint_nop0 ax _2b53: add si,[si+7] _2b56: mov byte [RAM_0137],1 _2b5b: inc cl _2b5d: and al,0xf _2b5f: cbw _2b60: shl ax,1 _2b62: mov bx,data_2c06_register_names _2b65: add_____bx_ax _2b67: mov bx,[cs:bx] _2b6a: mov [RAM_012e],bx _2b6e: mov bx,[RAM_013f] ; __2b72: mov al,[es:bx+si] _2b75: mov [bx+RAM_0141],al _2b79: push bx _2b7a: sub bx,[RAM_013f] _2b7e: add bx,RAM_0130 _2b82: mov [bx],al _2b84: pop bx _2b85: inc bx _2b86: loop __2b72 _2b88: mov [RAM_013f],bx _2b8c: mov byte [RAM_014c],2 _2b91: pop cx _2b92: pop bx _2b93: pop ax _2b94: ret ; _2b95: db 0 ; subroutine_2b96: ret ; $C3 ; _2b97: add [bx+si+0x53],dl _2b97: db 0 ; subroutine_2b98: push ax push bx _2b9a: cmp al,0xd4 _2b9c: jz __2ba2 _2b9e: cmp al,0xd5 _2ba0: jnz __2bb1 ; __2ba2: mov bx,[RAM_013f] _2ba6: mov al,[es:bx+si] _2ba9: mov [bx+RAM_0141],al _2bad: inc word [RAM_013f] ; __2bb1: pop bx _2bb2: pop ax _2bb3: ret ; subroutine_2bb4: ; push ax _2bb5: push bx _2bb6: mov byte [RAM_0108],0 _2bbb: ; mov ah,al db 0x8a,0xe0 _2bbd: and ah,0xf8 _2bc0: cmp ah,0x90 _2bc3: jnz __2bca ; _2bc5: mov byte [RAM_0108],1 ; __2bca: and al,7 _2bcc: cbw _2bcd: shl ax,1 ; double ax _2bcf: mov bx,data_2c16_register_names _2bd2: add_____bx_ax ; add offset _2bd4: mov bx,[cs:bx] _2bd7: mov [RAM_012e],bx _2bdb: mov byte [RAM_014c],1 _2be0: test byte [RAM_0108],1 _2be5: jz exit_2c03 ; _2be7: mov ax,[RAM_012e] _2bea: mov [RAM_0130],ax _2bed: mov al,[RAM_0136] _2bf0: mov [RAM_0137],al _2bf3: mov word [RAM_012e],0x2c3e _2bf9: mov byte [RAM_0136],0 _2bfe: mov byte [RAM_014c],2 ; exit_2c03: pop bx _2c04: pop ax _2c05: ret ; data_2c06_register_names: ; dw cstr_2c26_AL _2C08 dw cstr_2c29_CL dw cstr_2c2c_DL dw cstr_2c2f_BL dw cstr_2c32_AH dw cstr_2c35_CH dw cstr_2c38_DH dw cstr_2c3b_BH data_2c16_register_names: dw cstr_2c3e_AW dw cstr_2c41_CW dw cstr_2c44_DW dw cstr_2c47_BW dw cstr_2c4a_SP dw cstr_2c4d_BP dw cstr_2c50_IX dw cstr_2c53_IY ; cstr_2c26_AL: db "AL",NULL cstr_2c29_CL: db "CL",NULL cstr_2c2c_DL: db "DL",NULL cstr_2c2f_BL: db "BL",NULL cstr_2c32_AH: db "AH",NULL cstr_2c35_CH: db "CH",NULL cstr_2c38_DH: db "DH",NULL cstr_2c3b_BH: db "BH",NULL ; cstr_2c3e_AW: db "AW",NULL cstr_2c41_CW: db "CW",NULL cstr_2c44_DW: db "DW",NULL cstr_2c47_BW: db "BW",NULL cstr_2c4a_SP: db "SP",NULL cstr_2c4d_BP: db "BP",NULL cstr_2c50_IX: db "IX",NULL cstr_2c53_IY: db "IY",NULL ; subroutine_2c56: ; ; push ax ; 50 push bx ; 53 _2c58: and al,7 _2c5a: cbw _2c5b: shl ax,1 _2c5d: mov bx,table_2c70 _2c60: add_____bx_ax _2c62: mov ax,[cs:bx] _2c65: mov [RAM_012e],ax _2c68: mov byte [RAM_014c],1 _2c6d: pop bx _2c6e: pop ax _2c6f: ret ; table_2c70: dw __2c80 ;2C70: 80 db "," ;2C71: 2C ',' dw __2c82 ;2C72: 82 db "," ;2C73: 2C ',' dw __2c84 ;2C74: 84 db "," ;2C75: 2C ',' dw __2c86 ;2C76: 86 db "," ;2C77: 2C ',' dw __2c88 ;2C78: 88 db "," ;2C79: 2C ',' dw __2c8a ;2C7A: 8A db "," ;2C7B: 2C ',' dw __2c8c ;2C7C: 8C db "," ;2C7D: 2C ',' dw __2c8e ;2C7E: 8E db "," ;2C7F: 2C ',' ; ; __2c80 db "B",0 ;2C80: 42 ',B' db NULL ;2C81: 00 ; __2c82 db "C",0 ;2C82: 43 'C' db NULL ;2C83: 00 ; __2c84 db "D",0 ;2C84: 44 'D' db NULL ;2C85: 00 ; __2c86 db "E",0 ;2C86: 45 'E' db NULL ;2C87: 00 ; __2c88 db "H",0 ;2C88: 48 'H' db NULL ;2C89: 00 ; __2c8a db "L",0 ;2C8A: 4C 'L' db NULL ;2C8B: 00 ; __2c8c db "M",0 ;2C8C: 4D 'M' db NULL ;2C8D: 00 ; __2c8e db "A",0 ;2C8E: 41 'A' db NULL ;2C8F: 00 ; _2c90: push ax _2c91: push dx _2c92: call subroutine_1196 _2c95: jc __2ca2 _2c97: ;; mov dx,ax ; db 0x8b,0xd0 _2c99: call subroutine_11ec _2c9c: jc __2ca2 _2c9e: out dx,al _2c9f: jmp short exit_2ca5 _2ca1: nop ; __2ca2: call subroutine_0e1e ; exit_2ca5: pop dx _2ca6: pop ax _2ca7: ret ; ; db "Command not implemented.",CR,NULL subroutine_2cc2_print_hex_nibble: push ax _2cc3: and al,0xf ; LS nibble only _2cc5: cmp al,0xa ; less than ten? _2cc7: jl __2ccb _2cc9: add al,7 ; no, add 7 ; __2ccb: add al,'0' ; convert to ASCII _2ccd: call subroutine_2e32_print_character _2cd0: pop ax _2cd1: ret ; subroutine_2cd2_print_hex_byte: push ax _2cd3: shr al,byte 4 _2cd6: call subroutine_2cc2_print_hex_nibble _2cd9: pop ax _2cda: call subroutine_2cc2_print_hex_nibble _2cdd: ret ; subroutine_2cde_print_hex_word: push ax _2cdf: mov_____al_ah _2ce1: call subroutine_2cd2_print_hex_byte _2ce4: pop ax _2ce5: call subroutine_2cd2_print_hex_byte _2ce8: ret ; db 0 subroutine_2cea: push bx _2ceb: push cx ; _2cec: call subroutine_300c _2cef: call subroutine_1118 _2cf2: call subroutine_3376 _2cf5: cmp al,0xd _2cf7: jz __2d2c _2cf9: call subroutine_153e _2cfc: jnc __2d01 _2cfe: jmp short __2d06 _2d00: nop ; __2d01: call subroutine_1196 _2d04: jc __2d4f ; __2d06: mov [RAM_010a],ax _2d09: call subroutine_300c _2d0c: call subroutine_1118 _2d0f: call subroutine_3376 _2d12: cmp al,0x3a _2d14: jnz __2d32 _2d16: call subroutine_1118 _2d19: call subroutine_153e _2d1c: jnc __2d21 _2d1e: jmp short __2d26 _2d20: nop ; __2d21: call subroutine_1196 _2d24: jc __2d4f ; __2d26: mov [RAM_010c],ax _2d29: jmp short __2d3e _2d2b: nop ; __2d2c: mov al,0 ; __2d2e: clc _2d2f: jmp short __2d50 _2d31: nop ; __2d32: mov ax,[RAM_010a] _2d35: mov [bx+2],ax _2d38: mov al,1 _2d3a: clc _2d3b: jmp short __2d50 _2d3d: nop ; __2d3e: mov ax,[RAM_010a] _2d41: mov [bx],ax _2d43: mov ax,[RAM_010c] _2d46: mov [bx+2],ax _2d49: mov al,2 _2d4b: clc _2d4c: jmp short __2d50 _2d4e: nop ; __2d4f: stc ; __2d50: pop cx _2d51: pop bx _2d52: ret ; _2d53: db 0 subroutine_2d54: push ax ; 50 _2d55: push bx ; 51 _2d56: push di _2d57: call subroutine_300c _2d5a: call subroutine_1118 _2d5d: call subroutine_31a4 _2d60: call subroutine_1500_set_carry_if_alpha _2d63: jnc __2db0 ; _2d65: mov bh,al _2d67: call subroutine_1118 _2d6a: call subroutine_31a4 _2d6d: call subroutine_1500_set_carry_if_alpha _2d70: jnc __2db0 ; _2d72: mov ah,bh _2d74: cmp ax,0x4453 _2d77: jnz __2d86 ; _2d79: call subroutine_1118 _2d7c: call subroutine_31a4 _2d7f: call subroutine_1530_set_carry_if_greater_than_9 _2d82: jnc __2db0 ; _2d84: mov ah,bh ; __2d86: mov di,0x2db6 _2d89: mov cx,0xe _2d8c: nop _2d8d: push es _2d8e: push cs _2d8f: pop es _2d90: repne scasw ; _2d92: pop es _2d93: jcxz __2db0 ; _2d95: dec di _2d96: dec di _2d97: sub di,_2db6 _2d9b: mov bx,di _2d9d: add bx,_2dd2 _2da1: mov bx,[cs:bx] _2da4: shl di,1 _2da6: add di,table_2dec _2daa: mov si,di _2dac: clc _2dad: jmp short __2db1 ; _2daf: nop ; __2db0: stc ; __2db1: pop di _2db2: pop cx _2db3: pop ax _2db4: ret ; _2db5: nop ; _2db6: push di _2db7: inc cx _2db8: push di _2db9: inc dx _2dba: push di _2dbb: inc bx _2dbc: push di _2dbd: inc sp _2dbe: push ax _2dbf: push bx _2dc0: push ax _2dc1: inc dx _2dc2: pop ax _2dc3: dec cx _2dc4: pop cx _2dc5: dec cx _2dc6: push bx _2dc7: push bx _2dc8: push bx _2dc9: push ax _2dca: xor [si+0x31],al _2dcd: inc sp _2dce: inc bx _2dcf: push ax _2dd0: add [bx+si],al ; ; _2dd2: or al,[bx+si] _2dd4: or al,0 _2dd6: push cs _2dd7: add [bx+si],dl _2dd9: add [bx+si],bl _2ddb: add [RAM_1200],dl _2ddf: add [si],dl _2de1: add [RAM_2000],bl _2de5: add [bp+si],bl _2de7: add [si],bl _2de9: add [si],ah _2deb: db $24 table_2dec: db "AW" ;2DEC: 41 57 'AW' db NULL,NULL ;2DEE: 00 00 db "BW" ;2DF0: 42 57 'BW' db NULL,NULL ;2DF2: 00 00 db "CW" ;2DF4: 43 57 'CW' db NULL,NULL ;2DF6: 00 00 db "DW" ;2DF8: 44 57 'DW' db NULL,NULL ;2DFA: 00 00 db "SP" ;2DFC: 53 50 'SP' db NULL,NULL ;2DFE: 00 00 db "BP" ;2E00: 42 50 'BP' db NULL,NULL ;2E02: 00 00 db "IX" ;2E04: 49 58 'IX' db NULL,NULL ;2E06: 00 00 db "IY" ;2E08: 49 59 'IY' db NULL,NULL ;2E0A: 00 00 db "SS" ;2E0C: 53 53 'SS' db NULL,NULL ;2E0E: 00 00 db "PS" ;2E10: 50 53 'PS' db NULL,NULL ;2E12: 00 00 db "DS0" ;2E14: 44 53 30 'DS0' db NULL ;2E17: 00 db "DS1" ;2E18: 44 53 31 'DS1' db NULL ;2E1B: 00 db "PC" ;2E1C: 50 43 'PC' db NULL,NULL ;2E1E: 00 00 subroutine_2e20: not byte [RAM_0149] _2e24: ret ; _2e25: db 0 ; add [bx+si+0x52],dl ; subroutine_2e26: push ax push bx _2e28: mov ah,2 _2e2a: mov_____dl_al _2e2c: call subroutine_0037 _2e2f: pop dx _2e30: pop ax _2e31: ret ; ; Print ; subroutine_2e32_print_character: push ax _2e33: call subroutine_2e26 _2e36: cmp al,CR _2e38: jnz __2e3f ; _2e3a: mov al,LF _2e3c: call subroutine_2e26 ; __2e3f: pop ax _2e40: ret ; db 0 ; subroutine_2e42_print_cstr: push ax push bx ; __2e44: mov al,[cs:bx] _2e47: cmp al,NULL _2e49: jz __2e51 ; _2e4b: call subroutine_2e32_print_character _2e4e: inc bx _2e4f: jmp short __2e44 ; __2e51: pop bx _2e52: pop ax _2e53: ret ; unused_2e54: push ax _2e55: push bx _2e56: call subroutine_300c _2e59: call subroutine_1118 _2e5c: call subroutine_31a4 _2e5f: cmp al,CR _2e61: jnz __2e69 ; _2e63: call subroutine_0808 _2e66: jmp short __2e83 _2e68: nop ; __2e69: cmp al,0x46 _2e6b: jnz __2e75 _2e6d: call subroutine_29e6 _2e70: jc __2e80 _2e72: jmp short __2e83 subroutine_2e73 equ $2e73 ; unbound label? _2e74: nop ; __2e75: call subroutine_3376 _2e78: call subroutine_2a9a _2e7b: jc __2e80 ; _2e7d: jmp short __2e83 _2e7f: nop ; __2e80: call subroutine_0e1e ; __2e83: pop bx _2e84: pop ax _2e85: ret ; _2e86: pop es _2e87: aas _2e88: add [bx+si],al subroutine_2e8a: mov word [RAM_000a],0 _2e90: mov word [RAM_000c],0 _2e96: mov word [RAM_000e],0 _2e9c: mov word [RAM_0010],0 _2ea2: mov word [RAM_0018],0xfff _2ea8: mov word [RAM_0016],0 _2eae: mov word [RAM_0012],0 _2eb4: mov word [RAM_0014],0 _2eba: mov word [RAM_001a],RAM_0100 _2ec0: mov word [RAM_001c],RAM_0100 _2ec6: mov word [RAM_001e],0xf00 _2ecc: mov word [RAM_0020],RAM_0100 _2ed2: mov word [RAM_0024],0 _2ed8: mov word [RAM_0022],0xf002 _2ede: ret ; _2edf: db 0 ; subroutine_2ee0: push ax push bx ; _2ee2: push ax _2ee3: shr al,byte 3 _2ee6: and al,7 _2ee8: cbw _2ee9: shl ax,1 _2eeb: mov bx,table_2f0f _2eee: add_____bx_ax _2ef0: mov ax,[cs:bx] _2ef3: mov [RAM_012e],ax _2ef6: pop ax _2ef7: and al,7 _2ef9: cbw _2efa: shl ax,1 _2efc: mov bx,table_2f0f _2eff: add_____bx_ax _2f01: mov ax,[cs:bx] _2f04: mov [RAM_0130],ax _2f07: mov byte [RAM_014c],2 _2f0c: pop bx _2f0d: pop ax _2f0e: ret ; table_2f0f: dw __2f1f dw __2f21 dw __2f23 dw __2f25 dw __2f27 dw __2f29 dw __2f2b dw __2f2d ; __2f1f: db 'B',0 ; __2f21: db 'C',0 ; __2f23: db 'D',0 ; __2f25: db 'E',0 ; __2f27: db 'H',0 ; __2f29: db 'L',0 ; __2f2b: db 'M',0 ; __2f2d: db 'A',0 _2f2f: db 0 subroutine_2f30 equ $2f30 pushf ; db $9c push es ; 06 db $8f _2f33: adc al,1 _2f35: xchg sp,[RAM_0018] _2f39: xchg bp,[RAM_0016] _2f3d: xchg si,[RAM_0012] _2f41: xchg di,[RAM_0014] _2f45: xchg ax,[RAM_000a] _2f49: xchg bx,[RAM_000c] _2f4d: xchg cx,[RAM_000e] _2f51: xchg dx,[RAM_0010] _2f55: mov [RAM_010e],ax _2f58: mov ax,es _2f5a: xchg ax,[RAM_001c] _2f5e: mov es,ax _2f60: mov ax,ss _2f62: xchg ax,[RAM_001e] _2f66: mov ss,ax _2f68: push word [RAM_0022] _2f6c: push word [RAM_0020] _2f70: push word [RAM_0024] _2f74: push word [RAM_010e] _2f78: mov ax,[RAM_0110] _2f7b: mov [RAM_0024],ax _2f7e: mov ax,cs _2f80: mov [RAM_0020],ax _2f83: mov ax,[RAM_0114] _2f86: mov [RAM_0022],ax _2f89: mov ax,ds _2f8b: xchg ax,[RAM_001a] _2f8f: mov ds,ax _2f91: pop ax _2f92: iret db 0 ; table_2f94: db 0x1E,0x53,0xBB _2f97: inc ax _2f98: add [bp+RAM_5bdb],cl _2f9c: pop word [RAM_001a] _2fa0: pop word [RAM_0110] _2fa4: pop word [RAM_0112] _2fa8: pop word [RAM_0114] _2fac: xchg sp,[RAM_0018] _2fb0: xchg bp,[RAM_0016] _2fb4: xchg si,[RAM_0012] _2fb8: xchg di,[RAM_0014] _2fbc: xchg ax,[RAM_000a] _2fc0: xchg bx,[RAM_000c] _2fc4: xchg cx,[RAM_000e] _2fc8: xchg dx,[RAM_0010] _2fcc: mov [RAM_0116],ax _2fcf: mov ax,es _2fd1: xchg ax,[RAM_001c] _2fd5: mov es,ax _2fd7: mov ax,ss _2fd9: xchg ax,[RAM_001e] _2fdd: mov ss,ax _2fdf: mov ax,[RAM_0110] _2fe2: mov [RAM_0024],ax _2fe5: mov ax,[RAM_0114] _2fe8: xchg ax,[RAM_0022] _2fec: push ax _2fed: popf _2fee: mov ax,[RAM_0112] _2ff1: mov [RAM_0020],ax _2ff4: push bx _2ff5: mov bx,RAM_011e _2ff8: mov [bx],ax _2ffa: mov ax,[RAM_0024] _2ffd: mov [bx+2],ax _3000: mov byte [RAM_0122],0 _3005: pop bx _3006: mov ax,[RAM_0116] _3009: stc _300a: ret ; __300b: db 0 ; subroutine_300c: push ax ; $50 ; __300d: ; E8 08 E1 call subroutine_1118 _3010: cmp al,0xa _3012: jz __300d _3014: cmp al,0x20 _3016: jz __300d _3018: cmp al,9 _301a: jz __300d _301c: call subroutine_3376 _301f: pop ax _3020: ret ; _3021: db 0 subroutine_3022: push ax push bx _3024: push cx _3025: mov cx,[RAM_00d8] _3029: jcxz __304b ; __302b: mov bx,cx _302d: dec bx _302e: push bx _302f: shl bx,1 _3031: add bx,0xda _3035: mov bx,[bx] _3037: push ds _3038: mov ax,[RAM_0020] _303b: mov ds,ax _303d: mov al,0xcc _303f: xchg al,[bx] _3041: pop ds _3042: pop bx _3043: add bx,0xee _3047: mov [bx],al _3049: loop __302b ; __304b: pop cx _304c: pop bx _304d: pop ax _304e: ret ; _304f: db 0 subroutine_3050: push ax push bx _3052: push es _3053: sbb [bx+di],al _3055: add [si],di _3057: db 0xc0 _3058: jz __307a _305a: cmp al,0xc1 _305c: jz __3075 _305e: mov byte [RAM_0118],0 _3063: mov bp,0x3124 _3066: cmp al,0xd0 _3068: jz __307a _306a: cmp al,0xd1 _306c: jz __3075 _306e: mov bp,0x3126 _3071: cmp al,0xd2 _3073: jz __307a ; __3075: mov dl,3 _3077: jmp short __307c _3079: nop ; __307a: mov dl,2 ; __307c: mov bx,[RAM_013f] _3080: mov al,[es:bx+si] _3083: mov [bx+RAM_0141],al _3087: inc word [RAM_013f] _308b: mov dh,al _308d: shr al,byte 3 _3090: and al,7 _3092: cbw _3093: shl ax,1 _3095: mov bx,0x30f1 _3098: add_____bx_ax _309a: mov bx,[cs:bx] _309d: mov [RAM_012c],bx _30a1: mov_____ax_dx _30a3: call subroutine_09f6 _30a6: mov ax,[RAM_0130] _30a9: mov [RAM_012e],ax _30ac: mov al,[RAM_0137] _30af: mov [RAM_0136],al _30b2: mov [RAM_0130],bp _30b6: mov byte [RAM_0137],0 _30bb: cmp byte [RAM_0139],0 _30c0: jz __30c7 _30c2: add byte [RAM_0139],2 ; __30c7: test byte [RAM_0118],1 _30cc: jz __30e5 _30ce: mov bx,[RAM_013f] _30d2: mov al,[es:bx+si] _30d5: mov [bx+RAM_0141],al _30d9: inc word [RAM_013f] _30dd: mov [RAM_0130],ax _30e0: mov byte [RAM_0137],2 ; __30e5: mov byte [RAM_014c],2 _30ea: mov byte [RAM_013d],1 _30ef: popa _30f0: ret ; _30f1: add [bx+di],si _30f3: add ax,0x931 _30f6: xor [RAM_1331],cx _30fa: xor [bx],dx _30fc: xor [bp+di],bx _30fe: xor [bx],bx _3100: xor [bp+si+0x4f],dx _3103: dec sp _3104: add [bp+si+0x4f],dl _3107: push dx _3108: add [bp+si+0x4f],dl _310b: dec sp _310c: inc bx _310d: add [bp+si+0x4f],dl _3110: push dx _3111: inc bx _3112: add [bp+di+0x48],dl _3115: dec sp _3116: add [bp+di+0x48],dl _3119: push dx _311a: add [bx],bh _311c: aas _311d: aas _311e: add [bp+di+0x48],dl _3121: push dx _3122: inc cx _3123: add [bx+di],dh _3125: add [bp+di+0x4c],al _3128: add [bx+si],al ; table_312a: %if 0 00003120: 48 52 41 00 31 00 43 4c 00 00 bb 40 00 8e db 8e HRA.1.CL...@.... 00003130: 06 1c 00 8e 16 1e 00 8b 26 18 00 8b 2e 16 00 8b ........&....... 00003140: 36 12 00 8b 3e 14 00 a1 0a 00 8b 1e 0c 00 8b 0e 6...>........... 00003150: 0e 00 8b 16 10 00 %else _312a: mov bx,0x0040 _312d: mov ds,bx _312f: mov es,[RAM_001c] _3133: mov ss,[RAM_001e] _3137: mov sp,[RAM_0018] _313b: mov bp,[RAM_0016] _313f: mov si,[RAM_0012] _3143: mov di,[RAM_0014] _3147: mov ax,[RAM_000a] _314a: mov bx,[RAM_000c] _314e: mov cx,[RAM_000e] _3152: mov dx,[RAM_0010] %endif ; _3156: push ax _3157: push bx _3158: mov bx,_316d _315b: call subroutine_2e42_print_cstr _315e: call subroutine_2e8a _3161: call subroutine_3510 _3164: mov ax,[RAM_0022] _3167: push ax _3168: popf _3169: clc _316a: pop bx _316b: pop ax _316c: ret ; _316d: db CR,LF ;316D: 0D 0A db "Normal Program Termination" db CR,NULL db 0 ; ; ; subroutine_318c: _318c: call subroutine_31a4 _318f: call subroutine_1514_set_carry_if_hex _3192: jnc ret_31a2 _3194: call subroutine_1530_set_carry_if_greater_than_9 _3197: jc __319b _3199: sub al,7 ; __319b: sub al,'0' ;0x30 _319d: clc _319e: jmp short ret_31a2 _31a0: nop _31a1: stc ; ret_31a2: ret ; subroutine_31a3: db $00 ;31A3: 00 ; subroutine_31a4: _31a4: cmp al,0x61 ; db $3C,$61, ; _31a6: jl __31ae _31a8: cmp al,0x7a _31aa: jg __31ae _31ac: sub al,0x20 ; __31ae: ret ; _31af: db 0 push ax push cx ; _31b2: call subroutine_300c _31b5: call subroutine_1118 _31b8: call subroutine_3376 ; _31bb: cmp al,0x3d _31bd: jnz __31ca ; _31bf: call subroutine_1118 _31c2: call subroutine_1196 _31c5: jc __31f5 ; _31c7: mov [RAM_0024],ax ; __31ca: call subroutine_1156 _31cd: jc __31f5 ; _31cf: cmp ax,0 _31d2: jnz __31d7 ; _31d4: mov ax,1 ; __31d7: mov cx,ax _31d9: hint_nop40 word [RAM_0022] ; ; _31de: or al,ch _31e0: dec si _31e1: std _31e2: call subroutine_0808 ; _31e5: mov al,CR _31e7: call subroutine_2e32_print_character ; _31ea: loop 0x31df ; _31df is a duff address - maybe this is data _31ec: bndstx [RAM_0022],bnd0 _31f1: or bl,ch _31f3: add al,0x90 ; __31f5: call subroutine_0e1e _31f8: pop cx _31f9: pop ax _31fa: ret ; __31fb: db 0 ; subroutine_31fc: push ax push bx ; _31fe: mov byte [RAM_011a],0 _3203: mov byte [RAM_011b],0 _3208: cmp al,0x8d _320a: jz __322d _320c: mov bx,0x32fd _320f: cmp al,0xc5 _3211: jz __3229 _3213: mov bx,0x3302 _3216: cmp al,0xc4 _3218: jz __3229 _321a: cmp al,0x8c _321c: jz __323c _321e: cmp al,0x8e _3220: jz __3232 _3222: cmp al,0x8f _3224: jz __324b _3226: jmp short __3255 _3228: nop ; __3229: mov [RAM_014a],bx ; __322d: mov al,3 _322f: jmp short __3255 _3231: nop ; __3232: mov al,0x8b _3234: mov byte [RAM_011c],1 _3239: jmp short __3243 _323b: nop ; __323c: mov al,0x8b _323e: mov byte [RAM_011c],0 ; __3243: mov byte [RAM_011a],1 _3248: jmp short __3255 _324a: nop ; __324b: mov byte [RAM_011b],1 _3250: mov al,3 _3252: jmp short __3255 _3254: nop ; __3255: mov bx,[RAM_013f] _3259: mov ah,[es:bx+si] _325c: mov [bx+RAM_0141],ah _3260: mov dl,ah _3262: inc word [RAM_013f] _3266: call subroutine_09f6 _3269: mov byte [RAM_014c],2 _326e: test byte [RAM_011b],1 _3273: jz __3295 _3275: mov byte [RAM_014c],1 _327a: mov ax,[RAM_0130] _327d: mov [RAM_012e],ax _3280: mov al,[RAM_0137] _3283: mov [RAM_0136],al _3286: cmp byte [RAM_0139],0 _328b: jz __32f2 _328d: add byte [RAM_0139],2 _3292: jmp short __32f2 _3294: nop ; __3295: test byte [RAM_011a],1 _329a: jz __32f2 _329c: mov al,dl _329e: shr al,byte 3 _32a1: and al,3 _32a3: shl al,1 _32a5: cbw _32a6: mov bx,data_32f5 _32a9: add_____bx_ax _32ab: mov bx,[cs:bx] _32ae: test byte [RAM_011c],1 _32b3: jnz __32bc _32b5: mov [RAM_012e],bx _32b9: jmp short __32c3 _32bb: nop ; __32bc: mov [RAM_012e],bx _32c0: jmp short __32d7 _32c2: nop ; __32c3: mov ax,[RAM_012e] _32c6: xchg ax,[RAM_0130] _32ca: mov [RAM_012e],ax _32cd: mov al,[RAM_0136] _32d0: xchg al,[RAM_0137] _32d4: mov [RAM_0136],al ; __32d7: cmp byte [RAM_0139],0 _32dc: jz __32f2 _32de: cmp byte [RAM_0139],3 _32e3: jnl __32ed _32e5: add byte [RAM_0139],2 _32ea: jmp short __32f2 _32ec: nop ; __32ed: sub byte [RAM_0139],2 ; __32f2: pop bx _32f3: pop ax _32f4: ret ; data_32f5: or si,[bp+di] _32f7: rdpmc _32f9: adc dh,[bp+di] _32fb: pop es _32fc: xor ax,[si+0x53] _32ff: xor [si],ch _3301: add [si+0x53],al _3304: xor [si],bp _3306: add [si+0x53],al _3309: xor [bx+si],al _330b: inc sp _330c: push bx _330d: xor [bx+si],ax _330f: push ax _3310: push bx _3311: add [bp+di+0x53],dl _3314: add [bx+si],al _3316: push ax _3317: push bx _3318: push cx _3319: call subroutine_1118 _331c: call subroutine_31a4 _331f: cmp al,0x4e _3321: jz __3329 _3323: call subroutine_3376 _3326: jmp short __3331 _3328: nop ; __3329: mov byte [RAM_0122],0 _332e: jmp short __3331 _3330: nop ; __3331: mov bx,0x011e _3334: call subroutine_2cea _3337: jc __336c _3339: cmp al,0 _333b: jz __3348 _333d: cmp al,1 _333f: jz __334e _3341: cmp al,2 _3343: jz __3357 _3345: jmp short __336c _3347: nop ; __3348: mov bx,0x011e _334b: jmp short __335a _334d: nop ; __334e: mov ax,[RAM_0020] _3351: mov [RAM_011e],ax _3354: jmp short __335a _3356: nop ; __3357: mov bx,0x011e ; __335a: mov cx,0xa ; LF ? ; loop_335d: mov al,[RAM_0122] _3360: call subroutine_378c _3363: add [RAM_0120],ax _3367: loop loop_335d _3369: jmp short exit_3372 _336b: nop ; __336c: call subroutine_0e1e _336f: jmp short exit_3372 _3371: nop ; exit_3372: pop cx _3373: pop bx _3374: pop ax _3375: ret ; subroutine_3376: push bx _3377: mov bx,[RAM_0084] _337b: cmp bx,byte +0 _337e: jz exit_3389 _3380: dec bx _3381: mov [bx+0x88],al _3385: mov [RAM_0084],bx ; exit_3389: pop bx _338a: ret ; _338b: db 0 subroutine_338c: push ax push bx ; _338e: push es _338f: and al,1 _3391: add dh,al _3393: push es _3394: and ax,1 _3397: mov bx,[RAM_013f] _339b: mov al,[es:bx+si] _339e: mov [bx+RAM_0141],al _33a2: inc word [RAM_013f] _33a6: cmp al,0x20 _33a8: jnz __33b3 _33aa: mov word [RAM_012c],0x34d6 _33b0: jmp exit_34c9 ; __33b3: cmp al,0x22 _33b5: jnz __33c0 _33b7: mov word [RAM_012c],0x34dc _33bd: jmp exit_34c9 ; __33c0: cmp al,0x26 _33c2: jnz __33cd _33c4: mov word [RAM_012c],0x34e2 _33ca: jmp exit_34c9 ; __33cd: cmp al,0x28 _33cf: jnz __33da _33d1: mov word [RAM_012c],0x34e8 _33d7: jmp short __3456 _33d9: nop ; __33da: cmp al,0x2a _33dc: jnz __33e7 _33de: mov word [RAM_012c],0x34ed _33e4: jmp short __3456 _33e6: nop ; __33e7: hint_nop0 ax _33ea: add ax,0x1574 _33ed: mov word [RAM_012c],0x3507 _33f3: hint_nop0 ax _33f6: add [si+6],si _33f9: mov word [RAM_012c],0x350b _33ff: jmp short __3441 _3401: nop _3402: mov byte [RAM_0125],1 _3407: mov byte [RAM_013d],1 _340c: mov dh,al _340e: and al,7 _3410: shr al,1 _3412: cbw _3413: shl ax,1 _3415: mov bx,data_34cb _3418: add_____bx_ax _341a: mov bx,[cs:bx] _341d: mov [RAM_012c],bx _3421: movups xmm0,xmm6 _3424: add si,[si+5] _3427: mov byte [RAM_0124],1 _342c: movups xmm0,xmm6 _342f: add [si+5],dh _3432: mov al,3 _3434: jmp short __3439 _3436: nop _3437: mov al,2 ; __3439: mov byte [RAM_014c],2 _343e: jmp short __3460 _3440: nop ; __3441: hint_nop0 ax _3444: add si,[si+5] _3447: mov byte [RAM_0124],1 _344c: mov al,2 _344e: mov byte [RAM_014c],2 _3453: jmp short __3460 _3455: nop ; __3456: mov al,2 _3458: mov byte [RAM_014c],1 _345d: jmp short __3460 _345f: nop ; __3460: mov bx,[RAM_013f] _3464: mov ah,[es:bx+si] _3467: mov [bx+RAM_0141],ah _346b: inc word [RAM_013f] _346f: call subroutine_09f6 _3472: test byte [RAM_0125],1 _3477: jz __348b _3479: test byte [RAM_0124],1 _347e: jnz __348b _3480: mov word [RAM_012e],0x34d3 _3486: mov byte [RAM_0136],0 ; __348b: mov ax,[RAM_012e] _348e: xchg ax,[RAM_0130] _3492: mov [RAM_012e],ax _3495: mov al,[RAM_0136] _3498: xchg al,[RAM_0137] _349c: mov [RAM_0136],al _349f: cmp byte [RAM_0139],0 _34a4: jz __34ab _34a6: add byte [RAM_0139],2 ; __34ab: test byte [RAM_0124],1 _34b0: jz exit_34c9 _34b2: mov bx,[RAM_013f] _34b6: mov al,[es:bx+si] _34b9: mov [bx+RAM_0141],al _34bd: inc word [RAM_013f] _34c1: mov [RAM_0130],ax _34c4: mov byte [RAM_0137],2 ; exit_34c9: popa _34ca: ret ; data_34cb: repne xor al,2 _34ce: xor ax,0x34f8 _34d1: std _34d2: xor al,0x43 _34d4: dec sp _34d5: add [bx+di+0x44],al _34d8: inc sp _34d9: xor al,0x53 _34db: add [bp+di+0x55],dl _34de: inc dx _34df: xor al,0x53 _34e1: add [bp+di+0x4d],al _34e4: push ax _34e5: xor al,0x53 _34e7: add [bp+si+0x4f],dl _34ea: dec sp _34eb: xor al,0 _34ed: push dx _34ee: dec di _34ef: push dx _34f0: xor al,0 _34f2: push sp _34f3: inc bp _34f4: push bx _34f5: push sp _34f6: xor [bx+si],ax _34f8: push bx _34f9: inc bp _34fa: push sp _34fb: xor [bx+si],ax _34fd: dec si _34fe: dec di _34ff: push sp _3500: xor [bx+si],ax _3502: inc bx _3503: dec sp _3504: push dx _3505: xor [bx+si],ax _3507: dec cx _3508: dec si _3509: push bx _350a: add [di+0x58],al _350d: push sp _350e: add [bx+si],al subroutine_3510: ; _3510: push ax _3511: push bx _3512: push cx ; _3513: mov ax,[RAM_0020] _3516: mov cx,[RAM_0024] _351a: mov bx,0x0080 _351d: mov [bx],ax _351f: mov [bx+2],cx _3522: mov bx,0x006c _3525: mov [bx],ax _3527: mov [bx+2],cx _352a: mov bx,0x11e _352d: mov [bx],ax _352f: mov [bx+2],cx _3532: mov byte [RAM_0122],0 _3537: pop cx _3538: pop bx _3539: pop ax _353a: ret ; ; ; _353b: db 0 subroutine_353c: push ax push bx ; _353e: mov byte [RAM_0136],1 _3543: mov bx,[RAM_013f] _3547: mov al,[es:bx+si] _354a: mov [bx+RAM_0141],al _354e: inc bx _354f: mov ah,[es:bx+si] _3552: mov [bx+RAM_0141],ah _3556: mov [RAM_012e],ax _3559: add word [RAM_013f],byte +2 _355e: mov byte [RAM_014c],1 _3563: pop bx _3564: pop ax _3565: ret ; subroutine_3566: push ax _3567: push bx _3568: shr al,byte 4 _356b: and al,3 _356d: cbw _356e: shl ax,1 _3570: mov bx,data_35a3 _3573: add_____bx_ax _3575: mov ax,[cs:bx] _3578: mov [RAM_012e],ax _357b: mov bx,[RAM_013f] _357f: mov al,[es:bx+si] _3582: mov [bx+RAM_0141],al _3586: inc bx _3587: mov ah,[es:bx+si] _358a: mov [bx+RAM_0141],ah _358e: mov [RAM_0130],ax _3591: mov byte [RAM_0137],1 _3596: add word [RAM_013f],byte +2 _359b: mov byte [RAM_014c],2 _35a0: pop bx _35a1: pop ax _35a2: ret ; data_35a3: dw cstr_35ab_B dw cstr_35ad_D dw cstr_35af_H dw cstr_35b1_SP ; cstr_35ab_B: db 'B', 0 cstr_35ad_D: db "D", 0 cstr_35af_H: db "H", 0 cstr_35b1_SP: db "SP", 0 ; ; __35b4: call subroutine_0f74 ; db $E8,$BD,$D9 _35b7: mov bx,cstr_361c _35ba: call subroutine_2e42_print_cstr _35bd: call subroutine_1134 _35c0: cmp ah,1 _35c3: jz __35b4 _35c5: cmp ah,2 _35c8: jz __35d5 _35ca: mov cx,0x10 _35cd: nop _35ce: mov di,table_360c _35d1: repne scasb _35d3: jz __35da ; __35d5: call subroutine_0e1e _35d8: jmp short __35b4 ; __35da: dec di _35db: sub di,table_360c _35df: shl di,1 _35e1: add di,0x35ec _35e5: mov bx,di _35e7: call [cs:di] _35ea: jmp short __35b4 ; _35ec: db 0xb0,0x3b,0xd5,0x40 _35f0: db 0xbc,0x0c,0xcc,0x0d,0x26,0x0f,0x0e,0x12,0x72,0x38,0xd2,0x14,0x36,0x42,0xe8,0x15 _3600: db 0xe0,0x2a,0x90,0x2c,0x54,0x2e,0xf9,0x3c,0xb0,0x31,0x16,0x33, table_360c: db "BCDE" ; 0x42,0x43,0x44,0x45 _3610: db "FGHIKL" ; 0x46,0x47,0x48,0x49,0x4b,0x4c _3616: db "MORSTU" ; 0x4d,0x4f,0x52,0x53,0x54,0x55 ; cstr_361c: db CR db " -> " db NULL ;3621: 00 ; ; 3622: 50 06 07 58 c3 00 _3622: push ax _3623: push es _3624: pop es _3625: pop ax _3626: ret ; _3627: db 0 subroutine_3628: push ax push bx ; _362a: push es _362b: add [es:bx+si],ax _362e: mov byte [RAM_0127],0 _3633: mov bx,[RAM_013f] _3637: mov al,[es:bx+si] _363a: mov [bx+RAM_0141],al _363e: inc word [RAM_013f] _3642: cmp al,0x91 _3644: jnz __364f _3646: mov word [RAM_012c],cstr_3758_RETRBI _364c: jmp __3756 ; __364f: cmp al,0x92 _3651: jnz __365c _3653: mov word [RAM_012c],cstr_375f_FINT _3659: jmp __3756 ; __365c: cmp al,0x9e _365e: jnz __3669 _3660: mov word [RAM_012c],cstr_376a_STOP _3666: jmp __3756 ; __3669: cmp al,0x9c _366b: jnz __3670 _366d: jmp short __36a7 _366f: nop ; __3670: cmp al,0x25 _3672: jnz __367d _3674: mov word [RAM_012c],cstr_3775_MOVSPA _367a: jmp __3756 ; __367d: cmp al,0x2d _367f: jnz __368a ; _3681: mov word [RAM_012c],cstr_376f_BRKCS _3687: jmp __3731 ; __368a: cmp al,0x94 _368c: jnz __3697 ; _368e: mov word [RAM_012c],cstr_377c_TSKSW _3694: jmp __3731 ; __3697: cmp al,0x95 _3699: jnz __36a4 ; _369b: mov word [RAM_012c],cstr_3782_MOVSPB _36a1: jmp __3731 ; __36a4: jmp __3756 ; __36a7: mov word [RAM_012c],cstr_3764_BTCLR _36ad: mov bx,[RAM_013f] _36b1: mov al,[es:bx+si] _36b4: mov [bx+RAM_0141],al _36b8: mov ah,0 _36ba: shl ax,1 _36bc: push bx _36bd: sub bx,[RAM_013f] _36c1: add bx,RAM_012e _36c5: mov di,string_ptr_table_23f6 _36c8: add di,ax _36ca: mov ax,[cs:di] _36cd: mov [bx],ax _36cf: pop bx _36d0: inc word [RAM_013f] _36d4: mov bx,[RAM_013f] _36d8: mov al,[es:bx+si] _36db: mov [bx+RAM_0141],al _36df: mov ah,0 _36e1: push bx _36e2: sub bx,[RAM_013f] _36e6: add bx,RAM_0130 _36ea: mov [bx],ax _36ec: pop bx _36ed: inc word [RAM_013f] _36f1: mov bx,[RAM_013f] _36f5: mov al,[es:bx+si] _36f8: mov [bx+RAM_0141],al _36fc: push bx _36fd: sub bx,[RAM_013f] _3701: add bx,0x132 _3705: mov [bx],ax _3707: pop bx _3708: inc word [RAM_013f] _370c: mov ax,[RAM_0132] _370f: add ax,5 _3712: cbw _3713: add ax,[RAM_012a] _3717: mov [RAM_0132],ax _371a: mov byte [RAM_0136],4 _371f: mov byte [RAM_0137],2 _3724: mov byte [RAM_0138],1 _3729: mov byte [RAM_014c],3 _372e: jmp short __3756 _3730: nop ; __3731: mov bx,[RAM_013f] _3735: mov al,[es:bx+si] _3738: mov [bx+RAM_0141],al _373c: inc word [RAM_013f] _3740: and al,7 _3742: cbw _3743: shl ax,1 _3745: mov bx,data_2c16_register_names _3748: add_____bx_ax _374a: mov bx,[cs:bx] _374d: mov [RAM_012e],bx _3751: mov byte [RAM_014c],1 ; __3756: popa _3757: ret ; ; New instructions of the V20/V25 ? ; cstr_3758_RETRBI: db "RETRBI" ,NULL ;3758: 52 45 54 52 42 49 'RETRBI' cstr_375f_FINT: db "FINT" ,NULL ;375F: 46 49 4E 54 'FINT' cstr_3764_BTCLR: db "BTCLR" ,NULL ;3764: 42 54 43 4C 52 'BTCLR' cstr_376a_STOP: db "STOP" ,NULL ;376A: 53 54 4F 50 'STOP' cstr_376f_BRKCS: db "BRKCS" ,NULL ;376F: 42 52 4B 43 53 'BRKCS' cstr_3775_MOVSPA: db "MOVSPA" ,NULL ;3775: 4D 4F 56 53 50 41 'MOVSPA' cstr_377c_TSKSW: db "TSKSW" ,NULL ;377C: 54 53 4B 53 57 'TSKSW' cstr_3782_MOVSPB: db "MOVSPB" ,NULL ;3782: 4D 4F 56 53 50 42 'MOVSPB' cstr_3789_CL: db "CL" ,NULL ;3789: 43 4C 'CL' ; subroutine_378c: _378c: pushaw _378d: push es _378e: mov word [RAM_0147],0 _3794: mov [RAM_014d],al ; __3797: push bx _3798: mov byte [RAM_0149],0 _379d: mov word [RAM_013f],0 _37a3: mov byte [RAM_0136],0 _37a8: mov byte [RAM_0137],0 _37ad: mov byte [RAM_0138],0 _37b2: mov byte [RAM_0139],0 _37b7: mov byte [RAM_014c],0 _37bc: mov byte [RAM_013d],0 _37c1: mov byte [RAM_013c],0 _37c6: mov byte [RAM_013e],0 _37cb: mov ax,subroutine_3870_print_help_screen _37ce: mov [RAM_012c],ax _37d1: mov [RAM_012e],ax _37d4: mov [RAM_0130],ax _37d7: mov [RAM_0132],ax _37da: mov [RAM_014a],ax _37dd: mov si,[bx+2] _37e0: add si,[RAM_0147] _37e4: mov [RAM_012a],si _37e8: mov ax,[bx] _37ea: mov es,ax _37ec: mov [RAM_0128],ax _37ef: mov al,[es:si] _37f2: push ax _37f3: mov bx,[RAM_013f] _37f7: mov [bx+RAM_0141],al _37fb: inc word [RAM_013f] _37ff: cmp al,0xf _3801: jnz __3837 _3803: mov al,[es:si+1] _3807: cmp al,0x92 _3809: jz __382a _380b: cmp al,0x9e _380d: jz __382a _380f: cmp al,0x91 _3811: jz __382a _3813: cmp al,0x9c _3815: jz __382a _3817: cmp al,0x2d _3819: jz __382a _381b: cmp al,0x25 _381d: jz __382a _381f: cmp al,0x94 _3821: jz __382a _3823: cmp al,0x95 _3825: jz __382a _3827: jmp short __3837 _3829: nop ; __382a: pop ax _382b: push ax _382c: mov ah,0 _382e: add ax,0xf1 _3831: shl ax,byte 2 _3834: jmp short __383e _3836: nop ; __3837: pop ax _3838: push ax _3839: mov ah,0 _383b: shl ax,byte 2 ; __383e: test byte [RAM_014d],1 _3843: jz __3845 ; __3845: mov di,0x1ddc _3848: add di,ax _384a: mov ax,[cs:di+2] _384e: mov [RAM_012c],ax _3851: pop ax _3852: call [cs:di] _3855: call subroutine_0584_print_segment_colon_word_space _3858: pop bx _3859: mov ax,[RAM_013f] _385c: add [RAM_0147],ax _3860: cmp byte [RAM_0149],0 _3865: jz __386a _3867: jmp __3797 ; __386a: pop es _386b: popa _386c: mov ax,[RAM_0147] _386f: ret ; subroutine_3870_print_help_screen: db 0,0 ; add [bx+si],al ; _3872: push bx _3873: mov bx,cstr_help_screen _3876: call subroutine_2e42_print_cstr _3879: pop bx _387a: ret ; cstr_help_screen: _387b: db "SV25 Monitor Command Summary",CR,CR ;3897: 0D 0D db "B",TAB,TAB,TAB," - Register Bank Display",CR ;38BA: 0D db "C",TAB,TAB,TAB," - DMA Channel Display",CR ;38DA: 0D db "D ( address ) - Display Memory Contents",CR ;3912: 0D db "E address ( list ) - Display/Alter Memory",CR ;3947: 0D db "F address count fill_value - Fill Memory",CR ;3973: 0D db "G ( =start_address )(break (break ...)) - " ;3989: 62 72 65 61 6B 20 28 62 72 65 61 6B 20 2E 2E 2E 29 29 20 2D 20 'break (break ...)) - ' db "Go (Execute) Command",CR ;39B2: 0D _39B3: db "H - This help summary",CR ;39E4: 0D _39E5: db "I port_address - Read Data from I/O Port",CR ;3A1C: 0D _3A1D: db "K",TAB,TAB,TAB," - Macro Service Channel Display",CR ;3A46: 0D _3A47: db "L ( string ) - Download Hex File from Host",CR ;3A82: 0D _3A83: db "M address address count_value - Move Memory Block",CR ;3AB4: 0D _3AB5: db "O port_address data - Output Data to I/O Port",CR ;3AEC: 0D _3AED: db "R ( register ) - Display/Modify Register Contents",CR ;3B2D: 0D _3b2e: db "S",TAB,TAB,TAB, db " - SFR Display" db CR ;3B45: 0D _3b46: db "T ( trace_count) - Instruction Trace",CR ;3B77: 0D _3b78: db "U ( address )" db " " ; 17 spaces db "- Disassemble Command" ; ;;; db 0 ; _3bab: db CR,CR,CR,CR ;3BAB: 0D 0D 0D 0D _3baf: db NULL _3bb0: pushaw ;3BB0: 60 '`' _3bb1: push ds _3bb2: mov dx,[RAM_0022] _3bb6: shr dx,byte 0xc _3bb9: and dl,7 _3bbc: mov bx,cstr_register_bank_display _3bbf: call subroutine_2e42_print_cstr _3bc2: mov ax,0xffff _3bc5: mov ds,ax _3bc7: mov si,0xf _3bca: mov ah,[si] _3bcc: mov al,0 _3bce: mov ds,ax _3bd0: mov si,0xe00 _3bd3: mov cl,8 _3bd5: mov dh,0 _3bd7: mov bp,0 ; __3bda: add si,byte +2 _3bdd: mov ch,0xf _3bdf: mov bx,table_3cd1 _3be2: ;; add bx,bp db 0x3d,0xdd _3be4: call subroutine_2e42_print_cstr _3be7: cmp dh,dl _3be9: jnz __3bf7 _3beb: mov bx,cstr_3c86 _3bee: call subroutine_2e42_print_cstr _3bf1: add si,byte +0x1e _3bf4: jmp short __3c0f _3bf6: nop ; __3bf7: mov ax,[si] _3bf9: xchg al,ah _3bfb: call subroutine_2cd2_print_hex_byte _3bfe: xchg al,ah _3c00: call subroutine_2cd2_print_hex_byte _3c03: mov al,space _3c05: call subroutine_2e32_print_character _3c08: add si,byte +2 _3c0b: dec ch _3c0d: jnz __3bf7 ; __3c0f: mov al,CR _3c11: call subroutine_2e32_print_character _3c14: inc dh _3c16: add bp,byte +5 _3c19: dec cl _3c1b: jnz __3bda _3c1d: pop ds _3c1e: popa _3c1f: ret ; cstr_register_bank_display: ; ; check alignment! ; db "REGISTER BANK DISPLAY" ;3C20: 52 45 47 49 53 54 45 52 20 42 41 4E 4B 20 44 49 53 50 4C 41 59 'REGISTER BANK DISPLAY' db ":",CR ;3C36: 0D db " vcPC PSWs PCsa DS0 SS PS DS1 IY SI BP SP BX DX CW AW", CR,NULL ;3C84: 0D 00 cstr_3c86: db "**** **** **** **** **** **** **** **** **** **** **** **** **** **** ****", NULL ; ; ; table_3cd1: db "B0: ",0 ;3CD1: 42 30 3A 20 'B0: ' db "B1: ",0 ;3CD6: 42 31 3A 20 'B1: ' db "B2: ",0 ;3CDB: 42 32 3A 20 'B2: ' db "B3: ",0 ;3CE0: 42 33 3A 20 'B3: ' db "B4: ",0 ;3CE5: 42 34 3A 20 'B4: ' db "B5: ",0 ;3CEA: 42 35 3A 20 'B5: ' db "B6: ",0 ;3CEF: 42 36 3A 20 'B6: ' db "B7: ",0 ;3CF4: 42 37 3A 20 'B7: ' ; ; ;00003CF9 601E pusha push ds _3cfb: mov bx,cstr_special_function_registers_read_only _3cfe: call subroutine_2e42_print_cstr _3d01: mov ax,0xffff _3d04: mov ds,ax _3d06: mov si,0xf _3d09: mov ah,[si] _3d0b: mov al,0 _3d0d: mov ds,ax _3d0f: mov si,0x0f00 _3d12: mov bx,cstr_25fe _3d15: call subroutine_2e42_print_cstr _3d18: mov al,[si] _3d1a: call subroutine_2cd2_print_hex_byte _3d1d: mov si,0x0f08 _3d20: mov bx,cstr_2616 _3d23: call subroutine_2e42_print_cstr _3d26: mov al,[si] _3d28: call subroutine_2cd2_print_hex_byte _3d2b: mov si,0x0f10 _3d2e: mov bx,cstr_262e _3d31: call subroutine_2e42_print_cstr _3d34: mov al,[si] _3d36: call subroutine_2cd2_print_hex_byte _3d39: mov si,0x0f38 _3d3c: mov bx,cstr_2646 _3d3f: call subroutine_2e42_print_cstr _3d42: mov al,[si] _3d44: call subroutine_2cd2_print_hex_byte _3d47: mov si,0x0f3b _3d4a: mov bx,cstr_264e _3d4d: call subroutine_2e42_print_cstr _3d50: mov al,[si] _3d52: call subroutine_2cd2_print_hex_byte _3d55: mov bx,cstr_40d0 _3d58: call subroutine_2e42_print_cstr _3d5b: mov si,0x0f40 _3d5e: mov bx,cstr_2656 _3d61: call subroutine_2e42_print_cstr _3d64: mov al,[si] _3d66: call subroutine_2cd2_print_hex_byte _3d69: mov si,0x0f44 _3d6c: mov bx,cstr_265e _3d6f: call subroutine_2e42_print_cstr _3d72: mov al,[si] _3d74: call subroutine_2cd2_print_hex_byte _3d77: mov si,0x0f45 _3d7a: mov bx,cstr_2666 _3d7d: call subroutine_2e42_print_cstr _3d80: mov al,[si] _3d82: call subroutine_2cd2_print_hex_byte _3d85: mov si,0xf46 _3d88: mov bx,cstr_266e _3d8b: call subroutine_2e42_print_cstr _3d8e: mov al,[si] _3d90: call subroutine_2cd2_print_hex_byte _3d93: mov si,0xf4c _3d96: mov bx,cstr_2676 _3d99: call subroutine_2e42_print_cstr _3d9c: mov al,[si] _3d9e: call subroutine_2cd2_print_hex_byte _3da1: mov si,0xf4d _3da4: mov bx,cstr_267e _3da7: call subroutine_2e42_print_cstr _3daa: mov al,[si] _3dac: call subroutine_2cd2_print_hex_byte _3daf: mov si,0xf4e _3db2: mov bx,cstr_2686 _3db5: call subroutine_2e42_print_cstr _3db8: mov al,[si] _3dba: call subroutine_2cd2_print_hex_byte _3dbd: mov bx,cstr_40d0 _3dc0: call subroutine_2e42_print_cstr _3dc3: mov si,0xf60 _3dc6: mov bx,cstr_268e _3dc9: call subroutine_2e42_print_cstr _3dcc: mov al,[si] _3dce: call subroutine_2cd2_print_hex_byte _3dd1: mov si,0xf65 _3dd4: mov bx,cstr_269e _3dd7: call subroutine_2e42_print_cstr _3dda: mov al,[si] _3ddc: call subroutine_2cd2_print_hex_byte _3ddf: mov si,0xf66 _3de2: mov bx,cstr_26a6 _3de5: call subroutine_2e42_print_cstr _3de8: mov al,[si] _3dea: call subroutine_2cd2_print_hex_byte _3ded: mov si,0xf68 _3df0: mov bx,cstr_26ae _3df3: call subroutine_2e42_print_cstr _3df6: mov al,[si] _3df8: call subroutine_2cd2_print_hex_byte _3dfb: mov si,0xf69 _3dfe: mov bx,cstr_26b6 _3e01: call subroutine_2e42_print_cstr _3e04: mov al,[si] _3e06: call subroutine_2cd2_print_hex_byte _3e09: mov si,0xf6a _3e0c: mov bx,cstr_26be _3e0f: call subroutine_2e42_print_cstr _3e12: mov al,[si] _3e14: call subroutine_2cd2_print_hex_byte _3e17: mov bx,cstr_40d3 _3e1a: call subroutine_2e42_print_cstr _3e1d: mov si,0xf6b _3e20: mov bx,cstr_26c6 _3e23: call subroutine_2e42_print_cstr _3e26: mov al,[si] _3e28: call subroutine_2cd2_print_hex_byte _3e2b: mov si,0xf6c _3e2e: mov bx,cstr_26ce _3e31: call subroutine_2e42_print_cstr _3e34: mov al,[si] _3e36: call subroutine_2cd2_print_hex_byte _3e39: mov si,0xf6d _3e3c: mov bx,cstr_26d6 _3e3f: call subroutine_2e42_print_cstr _3e42: mov al,[si] _3e44: call subroutine_2cd2_print_hex_byte _3e47: mov si,0xf6e _3e4a: mov bx,cstr_26de _3e4d: call subroutine_2e42_print_cstr _3e50: mov al,[si] _3e52: call subroutine_2cd2_print_hex_byte _3e55: mov bx,cstr_40d0 _3e58: call subroutine_2e42_print_cstr _3e5b: mov si,__0f70 _3e5e: mov bx,cstr_26e6 _3e61: call subroutine_2e42_print_cstr _3e64: mov al,[si] _3e66: call subroutine_2cd2_print_hex_byte _3e69: mov si,0xf75 _3e6c: mov bx,cstr_26f6 _3e6f: call subroutine_2e42_print_cstr _3e72: mov al,[si] _3e74: call subroutine_2cd2_print_hex_byte _3e77: mov si,0xf76 _3e7a: mov bx,cstr_26fe _3e7d: call subroutine_2e42_print_cstr _3e80: mov al,[si] _3e82: call subroutine_2cd2_print_hex_byte _3e85: mov si,0xf78 _3e88: mov bx,cstr_2706 _3e8b: call subroutine_2e42_print_cstr _3e8e: mov al,[si] _3e90: call subroutine_2cd2_print_hex_byte _3e93: mov si,0xf79 _3e96: mov bx,cstr_270e _3e99: call subroutine_2e42_print_cstr _3e9c: mov al,[si] _3e9e: call subroutine_2cd2_print_hex_byte _3ea1: mov si,0xf7a _3ea4: mov bx,cstr_2716 _3ea7: call subroutine_2e42_print_cstr _3eaa: mov al,[si] _3eac: call subroutine_2cd2_print_hex_byte _3eaf: mov bx,cstr_40d3 _3eb2: call subroutine_2e42_print_cstr _3eb5: mov si,0xf7b _3eb8: mov bx,cstr_271e _3ebb: call subroutine_2e42_print_cstr _3ebe: mov al,[si] _3ec0: call subroutine_2cd2_print_hex_byte _3ec3: mov si,0xf7c _3ec6: mov bx,cstr_2726 _3ec9: call subroutine_2e42_print_cstr _3ecc: mov al,[si] _3ece: call subroutine_2cd2_print_hex_byte _3ed1: mov si,0xf7d _3ed4: mov bx,cstr_272e _3ed7: call subroutine_2e42_print_cstr _3eda: mov al,[si] _3edc: call subroutine_2cd2_print_hex_byte _3edf: mov si,0xf7e _3ee2: mov bx,cstr_2736 _3ee5: call subroutine_2e42_print_cstr _3ee8: mov al,[si] _3eea: call subroutine_2cd2_print_hex_byte _3eed: mov bx,cstr_40d0 _3ef0: call subroutine_2e42_print_cstr _3ef3: mov si,0xf80 _3ef6: mov bx,cstr_273e _3ef9: call subroutine_2e42_print_cstr _3efc: mov ax,[si] _3efe: xchg al,ah _3f00: call subroutine_2cd2_print_hex_byte _3f03: xchg al,ah _3f05: call subroutine_2cd2_print_hex_byte _3f08: mov si,0xf82 _3f0b: mov bx,cstr_274e _3f0e: call subroutine_2e42_print_cstr _3f11: mov ax,[si] _3f13: xchg al,ah _3f15: call subroutine_2cd2_print_hex_byte _3f18: xchg al,ah _3f1a: call subroutine_2cd2_print_hex_byte _3f1d: mov si,0xf88 _3f20: mov bx,cstr_275e _3f23: call subroutine_2e42_print_cstr _3f26: mov ax,[si] _3f28: xchg al,ah _3f2a: call subroutine_2cd2_print_hex_byte _3f2d: xchg al,ah _3f2f: call subroutine_2cd2_print_hex_byte _3f32: mov si,0xf8a _3f35: mov bx,cstr_276e _3f38: call subroutine_2e42_print_cstr _3f3b: mov ax,[si] _3f3d: xchg al,ah _3f3f: call subroutine_2cd2_print_hex_byte _3f42: xchg al,ah _3f44: call subroutine_2cd2_print_hex_byte _3f47: mov si,0xf90 _3f4a: mov bx,cstr_277e _3f4d: call subroutine_2e42_print_cstr _3f50: mov al,[si] _3f52: call subroutine_2cd2_print_hex_byte _3f55: mov si,0xf91 _3f58: mov bx,cstr_2786 _3f5b: call subroutine_2e42_print_cstr _3f5e: mov al,[si] _3f60: call subroutine_2cd2_print_hex_byte _3f63: mov bx,cstr_40d3 _3f66: call subroutine_2e42_print_cstr _3f69: mov si,0xf94 _3f6c: mov bx,cstr_278e _3f6f: call subroutine_2e42_print_cstr _3f72: mov al,[si] _3f74: call subroutine_2cd2_print_hex_byte _3f77: mov si,0xf95 _3f7a: mov bx,cstr_2796 _3f7d: call subroutine_2e42_print_cstr _3f80: mov al,[si] _3f82: call subroutine_2cd2_print_hex_byte _3f85: mov si,0xf96 _3f88: mov bx,cstr_279e _3f8b: call subroutine_2e42_print_cstr _3f8e: mov al,[si] _3f90: call subroutine_2cd2_print_hex_byte _3f93: mov si,0xf9c _3f96: mov bx,cstr_27a6 _3f99: call subroutine_2e42_print_cstr _3f9c: mov al,[si] _3f9e: call subroutine_2cd2_print_hex_byte _3fa1: mov si,0xf9d _3fa4: mov bx,cstr_27ae _3fa7: call subroutine_2e42_print_cstr _3faa: mov al,[si] _3fac: call subroutine_2cd2_print_hex_byte _3faf: mov si,0xf9e _3fb2: mov bx,cstr_27b6 _3fb5: call subroutine_2e42_print_cstr _3fb8: mov al,[si] _3fba: call subroutine_2cd2_print_hex_byte _3fbd: mov bx,cstr_40d0 _3fc0: call subroutine_2e42_print_cstr _3fc3: mov si,0xfa0 _3fc6: mov bx,cstr_27be _3fc9: call subroutine_2e42_print_cstr _3fcc: mov al,[si] _3fce: call subroutine_2cd2_print_hex_byte _3fd1: mov si,0xfa1 _3fd4: mov bx,cstr_27c6 _3fd7: call subroutine_2e42_print_cstr _3fda: mov al,[si] _3fdc: call subroutine_2cd2_print_hex_byte _3fdf: mov si,0xfa2 _3fe2: mov bx,cstr_27ce _3fe5: call subroutine_2e42_print_cstr _3fe8: mov al,[si] _3fea: call subroutine_2cd2_print_hex_byte _3fed: mov si,0xfa3 _3ff0: mov bx,cstr_27d6 _3ff3: call subroutine_2e42_print_cstr _3ff6: mov al,[si] _3ff8: call subroutine_2cd2_print_hex_byte _3ffb: mov si,0xfac _3ffe: mov bx,cstr_27de _4001: call subroutine_2e42_print_cstr _4004: mov al,[si] _4006: call subroutine_2cd2_print_hex_byte _4009: mov si,0xfad _400c: mov bx,cstr_27e6 _400f: call subroutine_2e42_print_cstr _4012: mov al,[si] _4014: call subroutine_2cd2_print_hex_byte _4017: mov bx,cstr_40d0 _401a: call subroutine_2e42_print_cstr _401d: mov si,0xfe0 _4020: mov bx,cstr_27ee _4023: call subroutine_2e42_print_cstr _4026: mov al,[si] _4028: call subroutine_2cd2_print_hex_byte _402b: mov si,0xfe1 _402e: mov bx,cstr_27f6 _4031: call subroutine_2e42_print_cstr _4034: mov al,[si] _4036: call subroutine_2cd2_print_hex_byte _4039: mov si,0xfe8 _403c: mov bx,cstr_27fe _403f: call subroutine_2e42_print_cstr _4042: mov ax,[si] _4044: xchg al,ah _4046: call subroutine_2cd2_print_hex_byte _4049: xchg al,ah _404b: call subroutine_2cd2_print_hex_byte _404e: mov si,0xfea _4051: mov bx,cstr_280e _4054: call subroutine_2e42_print_cstr _4057: mov al,[si] _4059: call subroutine_2cd2_print_hex_byte _405c: mov si,0xfeb _405f: mov bx,cstr_2816 _4062: call subroutine_2e42_print_cstr _4065: mov al,[si] _4067: call subroutine_2cd2_print_hex_byte _406a: mov si,0xfec _406d: mov bx,cstr_281e _4070: call subroutine_2e42_print_cstr _4073: mov al,[si] _4075: call subroutine_2cd2_print_hex_byte _4078: mov bx,cstr_40d0 _407b: call subroutine_2e42_print_cstr _407e: mov si,0xfff _4081: mov bx,cstr_2826 _4084: call subroutine_2e42_print_cstr _4087: mov al,[si] _4089: call subroutine_2cd2_print_hex_byte _408c: mov bx,cstr_40d0 _408f: call subroutine_2e42_print_cstr _4092: pop ds _4093: popa _4094: ret ; ; cstr_special_function_registers_read_only: ; _4095: db "SPECIAL FUNCTION REGISTER DISPLAY (READ-ONLY-REGISTERS):" _40cd: db CR,LF,NULL, cstr_40d0: db CR,LF,NULL ;40CD: 0D 0A 00 0D 0A 00 cstr_40d3: db CR,NULL ;40D3: 0D 00 _40d5: pusha ;40D5: 60 '`' _40d6: push ds _40d7: mov dx,[RAM_0022] _40db: shr dx,byte 0xc _40de: and dl,7 _40e1: cmp dl,0 _40e4: jnz __40ef _40e6: mov bx,cstr_41e0 _40e9: call subroutine_2e42_print_cstr _40ec: jmp __4173 ; __40ef: mov bx,cstr_DMA_CHANNEL_DISPLAY _40f2: call subroutine_2e42_print_cstr _40f5: mov ax,0xffff _40f8: mov ds,ax _40fa: mov si,0xf _40fd: mov ah,[si] _40ff: mov al,0 _4101: mov ds,ax _4103: mov si,0xe00 _4106: mov cl,2 _4108: mov bp,0 ; __410b: mov bx,cstr_41be _410e: ; add bx,bp db 0x3d,0xde ; _4110: call subroutine_2e42_print_cstr _4113: mov al,[si+5] _4116: call subroutine_2cd2_print_hex_byte _4119: mov bx,cstr_41dc _411c: call subroutine_2e42_print_cstr _411f: mov ax,[si] _4121: xchg al,ah _4123: call subroutine_2cd2_print_hex_byte _4126: xchg al,ah _4128: call subroutine_2cd2_print_hex_byte _412b: mov bx,cstr_nine_spaces _412e: call subroutine_2e42_print_cstr _4131: mov al,[si+4] _4134: call subroutine_2cd2_print_hex_byte _4137: mov bx,cstr_41dc _413a: call subroutine_2e42_print_cstr _413d: mov ax,[si+2] _4140: xchg al,ah _4142: call subroutine_2cd2_print_hex_byte _4145: xchg al,ah _4147: call subroutine_2cd2_print_hex_byte _414a: mov bx,cstr_nine_spaces _414d: call subroutine_2e42_print_cstr _4150: mov ax,[si+6] _4153: xchg al,ah _4155: call subroutine_2cd2_print_hex_byte _4158: xchg al,ah _415a: call subroutine_2cd2_print_hex_byte _415d: mov bx,cstr_40d3 _4160: call subroutine_2e42_print_cstr _4163: add bp,byte +0xf _4166: mov si,0xe08 _4169: dec cl _416b: jnz __410b _416d: mov bx,cstr_40d0 _4170: call subroutine_2e42_print_cstr ; __4173: pop ds _4174: popa _4175: ret ; cstr_DMA_CHANNEL_DISPLAY: ; mispelling! ; db "DMA CANNEL DISPLAY:" ;4176: 44 4D 41 20 43 41 4E 4E 45 4C 20 44 49 53 50 4C 41 59 3A 'DMA CANNEL DISPLAY:' db CR,LF,TAB,TAB ;4189: 0D 0A 09 09 db "SOURCE" ;418D: 53 4F 55 52 43 45 'SOURCE' db TAB ;4193: 09 db " DESTINATION COUNT" ;41A9: 20 20 20 20 43 4F 55 4E 54 ' COUNT' db CR,NULL ;41B2: 0D 00 cstr_nine_spaces: db " " ;41B4: 20 20 20 20 20 20 20 20 20 ' ' db NULL ;41BD: 00 cstr_41be: db "CHANNEL0: " ;41BE: 43 48 41 4E 4E 45 4C 30 3A 20 20 20 20 20 'CHANNEL0: ' db NULL ;41CC: 00 cstr_41cd: db "CHANNEL1: " ;41CD: 43 48 41 4E 4E 45 4C 31 3A 20 20 20 20 20 'CHANNEL1: ' db NULL ;41DB: 00 cstr_41dc: db "00:" ;41DC: 30 30 3A '00:' db NULL ;41DF: 00 cstr_41e0: db "CANNOT DISPLAY DMA CHANNELS BECAUSE REGISTER BANK0" ;420A: 45 52 20 42 41 4E 4B 30 'ER BANK0' db CR ;4212: 0D ; ; ACTUELL is mis-translation from French or German? ; db "IS ACTUELL REGISTER BANK!!!!!!!!" ;4213: 49 53 20 41 43 54 55 45 4C 4C 20 52 45 47 49 53 54 45 52 20 42 41 4E 4B 21 21 21 21 21 21 21 21 db CR,LF,NULL ;4233: 0D 0A 00 ; ; more data? ; _4236: pusha _4237: push ds _4238: mov dx,[RAM_0022] _423c: shr dx,byte 0xc _423f: and dl,7 _4242: mov ax,0xffff _4245: mov ds,ax _4247: mov si,0xf _424a: mov ah,[si] _424c: mov al,0 _424e: mov ds,ax _4250: mov si,0xe00 _4253: mov bp,0 _4256: mov cl,8 _4258: mov ch,0 _425a: mov bx,cstr_macro_channels_display_screen _425d: call subroutine_2e42_print_cstr ; __4260: mov bx,table_of_MCSn_strings _4263: ;; add bx,bp db 0x3d,0xdd _4265: call subroutine_2e42_print_cstr _4268: cmp cl,4 _426b: jnz __426f _426d: inc ch ; __426f: ;; cmp dl,ch ; db 0x3a,0xd5 ; _4271: jnz __427c _4273: mov bx,cstr_asterisks _4276: call subroutine_2e42_print_cstr _4279: jmp short __42cb _427b: nop ; __427c: mov ax,[si+6] _427f: xchg al,ah _4281: call subroutine_2cd2_print_hex_byte _4284: xchg al,ah _4286: call subroutine_2cd2_print_hex_byte _4289: mov al,colon _428b: call subroutine_2e32_print_character _428e: mov ax,[si+4] _4291: xchg al,ah _4293: call subroutine_2cd2_print_hex_byte _4296: xchg al,ah _4298: call subroutine_2cd2_print_hex_byte _429b: mov bx,cstr_four_spaces _429e: call subroutine_2e42_print_cstr _42a1: mov ax,0 _42a4: mov al,[si+1] _42a7: shl ax,1 _42a9: mov bx,string_ptr_table_23f6 _42ac: add_____bx_ax _42ae: mov bx,[cs:bx] _42b1: call subroutine_2e42_print_cstr _42b4: mov bx,cstr_four_spaces _42b7: call subroutine_2e42_print_cstr _42ba: mov al,[si+2] _42bd: call subroutine_2cd2_print_hex_byte _42c0: mov bx,cstr_nine_spaces _42c3: call subroutine_2e42_print_cstr _42c6: mov al,[si] _42c8: call subroutine_2cd2_print_hex_byte ; __42cb: add bp,byte +7 _42ce: mov al,CR _42d0: call subroutine_2e32_print_character _42d3: add si,byte +8 _42d6: dec cl _42d8: jnz __4260 _42da: pop ds _42db: popa _42dc: ret ; cstr_macro_channels_display_screen: db "MACRO CHANNELS DISPLAY:" ;42DD: 4D 41 43 52 4F 20 43 48 41 4E 4E 45 4C 53 20 44 49 53 50 4C 41 'MACRO CHANNELS DISPLA' ;42F2: 59 3A 'Y:' db CR ;42F4: 0D db " MEM-adr SFR SEARCH COUNT" ;42F5: 20 20 20 20 20 20 20 4D 45 4D 2D 61 64 72 20 20 20 20 20 53 46 ' MEM-adr SF' ;430A: 52 20 20 20 20 20 20 53 45 41 52 43 48 20 20 20 20 20 43 4F 55 'R SEARCH COU' ;431F: 4E 54 'NT' db CR,NULL ;4321: 0D 00 cstr_asterisks: db "**********************************************" db CR,NULL ;4351: 0D 00 ; ; ; table_of_MCSn_strings: _4353: db "MSC0: " ,NULL ;4353: 4D 53 43 30 3A 20 00 _435a: db "MSC1: " ,NULL ;435A: 4D 53 43 31 3A 20 00 _4361: db "MSC2: " ,NULL ;4361: 4D 53 43 32 3A 20 00 _4368: db "MSC3: " ,NULL ;4368: 4D 53 43 33 3A 20 00 _436f: db "MSC4: " ,NULL ;436F: 4D 53 43 34 3A 20 00 _4376: db "MSC5: " ,NULL ;4376: 4D 53 43 35 3A 20 00 _437d: db "MSC6: " ,NULL ;437D: 4D 53 43 36 3A 20 00 _4384: db "MSC7: " ,NULL ;4384: 4D 53 43 37 3A 20 00 cstr_four_spaces: _438b: db " " ,NULL ; ;438F: 00 subroutine_4390: push ax _4391: push bx _4392: cmp al,apostrophe _4394: jz __43bd _4396: cmp al,'a' ;0x61 _4398: jz __43bd _439a: cmp al,0x9c _439c: jz __43c3 _439e: cmp al,0x9d _43a0: jz __43c3 _43a2: cmp al,0x6a _43a4: jz __43c9 _43a6: cmp al,0x68 _43a8: jz __43d4 _43aa: shr al,byte 3 _43ad: and al,3 _43af: cbw _43b0: shl ax,1 _43b2: mov bx,data_440a _43b5: add_____bx_ax _43b7: mov bx,[cs:bx] _43ba: jmp short exit_43fe _43bc: nop ; __43bd: mov bx,_4424_R _43c0: jmp short exit_43fe _43c2: nop ; __43c3: mov bx,_4420_PSW _43c6: jmp short exit_43fe _43c8: nop ; __43c9: mov cx,1 _43cc: mov byte [RAM_0136],2 _43d1: jmp short __43dc _43d3: nop ; __43d4: mov cx,2 _43d7: mov byte [RAM_0136],1 ; __43dc: mov bx,[RAM_013f] ; __43e0: mov al,[es:bx+si] _43e3: mov [bx+RAM_0141],al _43e7: push bx _43e8: sub bx,[RAM_013f] _43ec: add bx,RAM_012e _43f0: mov [bx],al _43f2: pop bx ; __43f3: inc bx _43f4: loop __43e0 _43f6: mov [RAM_013f],bx _43fa: mov bx,[RAM_012e] ; exit_43fe: mov [RAM_012e],bx _4402: mov byte [RAM_014c],1 _4407: pop bx _4408: pop ax _4409: ret ; data_440a: dw cstr_4419_DS1 dw cstr_4412_PS dw cstr_441d_SS dw cstr_4415_DS0 ; cstr_4412_PS db "PS",0 ;4412: 50 53 'PS' ; cstr_4415_DS0 db "DS0",0 ;4415: 44 53 30 'DS0' ; cstr_4419_DS1 db "DS1",0 ;4419: 44 53 31 'DS1' ; cstr_441d_SS db "SS",0 ;441D: 53 53 'SS' ; _4420_PSW db "PSW",0 ;4420: 50 53 57 'PSW' _4424_R db "R",0 ;4424: 52 'R' _4426_query db "?",0 ;4426: 3F '?' _4428: ; all zeros _ff00 equ 0xff00 ; until here: ; .org $ffef _ffef: db 0xf0 _fff0: db 0,0,0,0,0,0,0,0 _ffff: db 0